作用的简单说明:
sed命令执行原理
- 语法结构:awk [参数] ‘模式{动作}’ 文件信息 - - - 模式就是条件,动作就是指令(需要做什么操作)
三剑客awk常用操作
模板:
搜索指定条件查看行的列信息
- 匹配指定信息行的单列信息:#
awk '/Meng/{print $2}' test.txt
- - - 显示文件内容中带有Meng 的行信息,显示第2列
- 匹配指定信息行的多列信息:#
awk '/Meng/{print $2,$3,$4}' test.txt
- - - 显示文件中带有Meng 的行信息,显示第2、3、4列
结合分隔符
- 匹配指定信息的行并显示第二次捐款信息:#
awk -F "[ :]+" '/Meng/{print }' test.txt
- - - 查看指定的的行,显示第二次的捐款信息
参数:-F 用于合并分割符,后面写上分隔符的符号即可,后面的 + 加号,需要将多个连在一起的分隔符统一视为一个分隔符作用
搜索指定列的信息
模板:
- 我们需要找到Meng 的所有捐款信息,但是如果Zhangxiaoyu 帮 Meng 交了这个捐款的费用,再用上面的指定信息查找就会出现这种情况
对的,它乱掉了,所以我们要根据第一列的姓去找这个捐款人
搜索指定列的信息:#awk '$1~/Meng/{print $4}' test.txt
- - - $1 代表第1列,~ 表示匹配,匹配第1列信息Meng 的行,显示第4列的信息
- 搜索指定列以什么开头的信息:#
awk '$3~/^91/{print $3,$4}' test.txt
- - - 匹配显示第三列以 91 开头的行信息,显示 第3列 第4列
- 搜索指定列以什么结尾的信息:#
awk '$2~/an$/{print $3,$4}' test.txt
- - - 匹配显示第二列以 an 结尾的行信息,显示 第3列 第4列
替换操作
- 替换的格式:gsub(/替换信息/,“替换成什么信息”,$替换第几列)
- 命令行格式:#
awk '$2~/Xiaoyu/{gsub(/:/,"#",$4);print $0}' test.txt
- - - 替换第2列中的有Xiaoyu的行,替换第4列的 :成 # ,显示整行
三剑客高级命令
- awk模式概念
-
基础模式:正则匹配 / 行号匹配 / 字符匹配
-
特殊模式:
BEGIN:在处理文件之前先做的事情(也可以说是准备工作)
用处:1. 将awk 做计算器使用,格式:awk 'BEGIN{print 计算内容+-*/}'
- 进行变量设置:
awk 'BEGIN{info="12345";print info}'
内置变量:
NR:表示行号信息
NF:表示字段信息(关于列)
FS:表示分隔符字段信息(跟 -F 设置分隔符相等)
END:在处理文件后要做的事情(后续工作)
作用
- 进行变量设置:
-
awk内的公式
- 累加运算公式格式:#
awk '$3~/8/{i=i+1;print i}' test.txt
- - - 匹配第三列中出现过几次8 的字符,显示出来
- 求和运算公式格式:#
awk '{i=i+$1}{print i}' test.txt