Linux之awk 练习题-----文本处理
1.awk获取每个以C和E开头的名字。
[root@VM-4-13-centos awk]# cat renyuan.txt me age sex jack 18 男 ben 28 男 Cici 38 女 wumen 48 男 chu 55 男 jj 42 男 eni 23 emo 31 女 wuwu 22 女 hihi 25 [root@VM-4-13-centos awk]# cat renyuan.txt | awk '{print $1}' |awk '/^C/;/^c/;/^E/;/^e/' Cici chu eni emo
2.如何使用awk查询指定的字符
[root@VM-4-13-centos awk]# cat ip.txt 10.10.49.100 10.10.49.101 10.10.49.100 10.10.49.102 10.10.49.101 10.12.49.100 [root@VM-4-13-centos awk]# cat ip.txt |awk '/10.12.49.100/{print $0}' 10.12.49.100 [root@VM-4-13-centos awk]# cat ip.txt |awk '/10.12.49.101/{print $0}' [root@VM-4-13-centos awk]# cat ip.txt |awk '/10.10.49.101/{print $0}' 10.10.49.101 10.10.49.101
3.文件格式A,B,C,D四列,用awk取出C列。
[root@VM-4-13-centos awk]# cat abcd.txt A B C D 1 2 3 4 1 2 3 4 1 2 3 4 [root@VM-4-13-centos awk]# cat abcd.txt |awk '{print $3}' C 3 3 3
4.linux:awk,输出第一列和最后一列
[root@VM-4-13-centos awk]# cat abcd.txt A B C D 1 2 3 4 1 2 3 4 1 2 3 4 [root@VM-4-13-centos awk]# cat abcd.txt |awk '{print $1}' A 1 1 1 [root@VM-4-13-centos awk]# cat abcd.txt |awk '{print $NF}' D 4 4 4
5.用awk,求avg.txt第二列的平均值
1 [root@VM-4-13-centos awk]# cat avg.txt 2 30 31 32 33 3 41 42 43 44 4 51 52 53 54 5 [root@VM-4-13-centos awk]# awk '{sum+=$2}END{print sum/NR}' avg.txt 6 41.6667
6.linux命令,将一个文件的第10行打印出来
1 [root@VM-4-13-centos awk]# cat 20hang.txt 2 11111111111111111 3 222222222222222222 4 33333333333333333 5 44444444444444444444 6 55555555555555555555555 7 6666666666666666666666666666 8 7777777777777777777777 9 8888888888888888888888888 10 9999999999999999999 11 10101010101010101010101010100010 12 [root@VM-4-13-centos awk]# cat 20hang.txt | awk 'NR==10{print $0}' 13 10101010101010101010101010100010
7.给一个文件,其内容每列之间用"|"分隔,将第三列打印出来
[root@VM-4-13-centos awk]# cat test.txt aa|bb|cc|dd|ff| 11|22|33|44|55| aa|bb|cc|dd|ff| [root@VM-4-13-centos awk]# awk -F "|" '{print $3}' test.txt cc 33 cc