Linux基础知识- 系统随你玩之-XX 目前已经讲解了很多, 我们现在针对已经学习过的Linux基础知识 -进行学习练习以检验学习效果。
本次检测题目内容:
假设文件fyydlz.txt的文本如下(可以利用touch命令和vi命令组合创建):
- hello world fyydlz
- wold hello
- nothing is important
- i like fyydlz fyydlz
hello world
wold hello
nothing is important
i like fyydlz fyydlz
awk 命令可以用来过滤文本,简单理解就是对文本的每行执行命令awk指定的脚本,它的基本命令格式如下:
awk 'BEGIN{ commands } pattern{ commands } END{ commands }' file
其中:
'BEGIN{ commands } 指定最开始执行的脚本
pattern{ commands } 对文件的每一行遍历,判断是否满足pattern的模式,如果满足则执行脚本
END{ commands } 指定最后执行的脚本
这里是最常用的几个操作例子:
1、打印“开始”,打印每行,打印“结束”:
awk 'BEGIN{ print "开始" } { print } END{ print "结束" }' fyydlz.txt
2、打印每行的行号:
awk '{print NR}' fyydlz.txt
3、打印每行的文本:
awk '{print $0}' fyydlz.txt
4、打印每行的第1列(默认用空格分离):
awk '{print $1}' fyydlz.txt
5、打印每行的最后1列(默认用空格分离):
awk '{print $NF}' fyydlz.txt
6、打印每行的倒数第2列(默认用空格分离):
awk '{print $(NF-1)}' fyydlz.txt
7、打印每行,并为每行带上行号:
awk '{print NR":",$0}' fyydlz.txt
8、打印含有序号的行:
awk '/\d./ {print}' fyydlz.txt