bash

  • bash是一个命令处理器运行在文本窗口中,并能执行用户直接输入的命令
  • bash还能从文件中读取linux命令,称之为脚本-
  • bash 支持通配符,管道命令·1转换符,条件判断等逻辑控制语句
    图片说明
    图片说明

正则表达式

由一类特殊文字及文本字符所编写的模式,其中有些字符不表达其字面意义,而是用于表达控制或通配的功能
分二类:
基本正则表达式 BRE
扩展正则表达式 ERE
图片说明

Linux三剑客

文本处理工具,均支持正则表达式引擎

  • grep:文本过滤工具,(模式:pattern)工具
  • sed:stream editor,流编辑器:文本编辑工具
  • awk: Linux文本报告生成器(格式化文本),Linux是gawk
    图片说明

基本正则表达式BRE集合

图片说明

扩展正则表达式ERE集合

图片说明

grep与正则表达式

图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明

sed与正则表达式

图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明
图片说明

awk文本格式化

  • grep,擅长单纯的查找或匹配文本内容

  • awk,更适合编辑、处理匹配到的文本内容

  • Grep,擅长单纯的查找或匹配文本内容
    图片说明
    图片说明

  • $0表示整行

  • $NF表示当前分割后的最后一列

  • 倒数第二列可以写成$(NF-1)

awk内置变量

图片说明
自定义输出内容
awk必须外层单引号,内层双引号
内置变量都不得添加双引号,否则会识别为文本,尽量别加引号
输出整行内容
awk '{print}' xxx.txt
awk参数
图片说明
awk的分隔符

  • 输入分隔符:awk默认是空格,空白字符,变量名是FS
  • 输出分隔符:简称OFS

FS输入分隔符

awk逐行处理文本的时候,以输入分割符为准,把文本切成多个片段,默认符号是空格
当我们处理特殊文件,没有空格的时候,可以自由指定分隔符特点

OFS输出分隔符

awk执行完命令后,默认用空格隔开每一列,这个空格就是awk的默认输出符

awk变量

图片说明

awk格式化

图片说明
printf动作不会添加换行符
print默认添加空格换行符
给printf添加格式
格式化字符串%s代表字符串的意思

awk模式pattern

  • begin模式是处理文本之前需要执行的操作
  • end是处理完所有行之后的操作

awk的BEGIN与END的用法
eg:awk 'BEGIN{print "你好"}{print $0}END{print "结束"}' xxx.txt

利用awk格式化: awk -F ":" 'BEGIN{printf "%s\t%s\t%s\t\n","姓名","性别","年龄"}{printf "%s\t%s\t%s\t\n",$n}' chao.txt

给空白行添加注释
图片说明
打印ip地址: ifconfig ens33 |sed '2p' -n|sed 's/^.*inet//'|sed 's/netmask.*//'