第1章 Linux三剑客之awk
1.1 cut:按列切割
1.1.1 参数
1.2 awk(Linux三剑客之一)
awk不仅仅是Linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告。处理的数据可以是一个或多个文件,它是Linux系统最强大的文本处理工具。
1.2.1 命令语法:
1.2.2 参数:
1.2.3 常用变量:
1.3 三剑客练习:
环境准备
[root@oldboyedu ~]# sed -n '1,5p' /etc/passwd >test.txt
[root@oldboyedu ~]# cat oldboyedu.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
问题1:取test.txt文件的第2行到第3行的内容。
答:
sed -n '2,3p' test.txt
awk 'NR>1&&NR<4' test.txt
awk 'NR==2,NR==3' test.txt
问题2:过滤出含有root字符串的行※。
答:
grep "root" test.txt
sed -n '/root/p' test.txt
awk '/root/' test.txt
问题3:删除含有root字符串的行※。
答:
grep -v "root" test.txt
sed '/root/d' test.txt
awk '!/root/' test.txt
问题4:取文件的第一列、第三列和最后一列内容,并打印行号※。
答:
awk -F":" '{print NR,3,2}'
ifconfig eth0|sed -nr 's#^.net (.) net.1~/root/{print $NF}' test.txt
sed -nr 's#^root.:(.*)#\1#gp' test.txt