#awk是比较好用的查找命令之一,被广泛的应用于现在的shell语言中和日常的命令操作中
#下面进行实地操作演练
#新建一个test.txt文件
一只pig
hi wudi
一只pig
我是一只pig
hi
world
hi world
i miss I you much!
I can you speak Chinese?
yea!
你;是;宇;宙;无;敌;超;级;可爱;的猪猪侠;
3
1.查询第二列和第三列的内容
cat test.txt | awk '{print $2,$3}'
wudi
world
miss I
can you
2.查询有"wudi"的第二列的内容
cat test.txt | grep wudi | awk '{print $2}'
wudi
3.标出行号及其内容(NR为行号,$0为输出本行内容,-v可以理解为转义,OFS=__译为将你要输出的内容中间填写为__)
cat test.txt | awk -v OFS=". " '{print NR,$0}'
1. 一只pig
2. hi wudi
3. 一只pig
4. 我是一只pig
5. hi
6. world
7. hi world
8. i miss I you much!
9. I can you speak Chinese?
10. yea!
11. 你;是;宇;宙;无;敌;超;级;可爱;的猪猪侠;
12. 3
4.匹配相应的行(&&和的关系、||或的关系、//正则匹配、!//正则匹配后取反、~//对特定的数据正则匹配、==精确匹配)
匹配到有’pig’和’我’的一行
cat test.txt | awk '/pig/&&/我/'
我是一只pig
#匹配到有’pig’和’我’的一行,输出行号和第一列
cat test.txt | awk -v OFS=". " '/pig/&&/我/{print NR,$1}'
4. 我是一只pig
匹配行中有“pig”内容且第一列有“是”的内容
cat test.txt | awk '/一/&&$1~/是/'
我是一只pig
5.自定义分隔符
#以“ ”为分隔符,打印出第四列的内容
cat test.txt | awk -F";" '{print $4}'
wudi
world
miss
can