对Linux正则表达式不清楚的,请移步我前面的文章:
https://blog.youkuaiyun.com/oyangyufu/article/details/118479810
awk简介
是一种用于处理文本、模式匹配的编程语言,在awk的文本处理规则里,awk将文本文件视为行与列组成的的文本数据库
行: 记录 record
列: 字段 域 field
参数:
-v 修改内置变量值
-F 指定分隔符,默认是空格 tab 多个空格
一、取行的内置变量:
$0 整行
NR (Number of Record)记录行号
RS Record Separator 记录分隔符,记录着每一行的结束标记 默认是回车
>
<
>=
<=
==
!=
案例
取出文件第一行
awk 'NR==1' /etc/passwd
取出文件第五行至最后一行
awk 'NR>=5' /etc/passwd
取出文件第三行至第五行
awk 'NR>=3 && NR<=5' /etc/passwd
模糊查询,匹配包含root字符串的行
awk '/root/' /etc/passwd
模糊查询,匹配包含root的行或包含ftp的行
awk '/root|ftp/' /etc/passwd
模糊查询,匹配包含root的行到包含passwd的行
awk '/^root/,/sync/' /etc/passwd
打印输出1-4行
awk 'NR==1,NR==4' /etc/passwd
打印输出行号及整行
awk '{print NR,$0}' /etc/passwd
通过RS控制每行的结束标记,将每行结束符修改为以,号
awk -v RS=, '{print NR,$0}' nu.txt
二、取列的内置变量:
FS(-F) Field Separator 字段分隔符 每一列的结束标记 默认是空格 tab 多个空格
NF(