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.*//'