![7dcd9c75eb389c8e966b87a361a73548.png](https://i-blog.csdnimg.cn/blog_migrate/55e5beb5372b1a73e7ec9e896ff09f9d.jpeg)
awk主要用于处理有格式的文本,例如/etc/passwd这种
用法
- awk 选项 'pattern{action}' 文件路径
选项
- -F指定分隔符 -- 如(-F:)
工作流程
- awk -F: '{print $1,$3}' /etc/passwd
- awk会读取文件的一行内容然后赋值给$0
- 然后awk会以-F指定的分隔符将该行切分成n段,最多可以达到100段,第一段给$1,第二段给$2,依次次类推
- print输出该行的第一段和第三段,逗号代表输出分隔符,默认与-F保持一致
- 重复步骤1,2,3直到文件内容读完
内置变量
- $0 -- 一整行内容
- NR -- 记录号,等同于行号
- NF -- 以-F分隔符分隔的段数
pattern可以是
- /正则/ # 该行内容匹配成功正则
- $1 ~ /正则/ # 第一段内容匹配成功正则
- $1 !~ /正则/ # 第一段内容没有匹配成功正则
- 比较运算
- NR >= 3 && NR <=5 # 3到5行
- $1 == "root" # 第一段内容等于root