1.用AWK替换文件中的字符串:
awk '{if ($0~/haakaao/) gsub("haakaao", "wooo haooo"); print$0;}' status.cgi >tmp.cgi; cp -rf tmp.cgi status.cgi ;rm -rf tmp.cgi
上面这条命令干了哪些事情呢?
将status.cgi文件中的字符串“haakaao”替换为“wooo haooo”
1.将替换后的内容输出到tmp.cgi
2.再将tmp.cgi拷贝到status.cgi
3. 删掉tmp.cgi
2.用AWK打印匹配的行:
[root@localhost yuan]# vi lee
LeeKeng 20
NeKeng 30
NeNeKeng 32
NeNeNeKeng 34
NeeKeng 40
LeNKeng 50
[root@localhost yuan]# awk '/(Ne)+Keng/ {print $0}' lee
NeKeng 30
NeNeKeng 32
NeNeNeKeng 34
3.用AWK提取"ifconfig"输出结果中的IP地址:
我们知道使用 ifconfig -a 就可以得到所有网络界面的 IP 地址,但是这些 IP 地址都混在其他信息之中。
你需要从中分离出来,下面的脚本就可以帮助你直接输出 IP 地址: ifconfig | awk '/inet/{print $2}' | awk -F: '{print $2}'
看实例:
[root@CCC-0(MYLINUX-5) /root]
# ifconfig | awk '/inet/{print $2}' | awk -F: '{print $2}'
169.254.0.4
10.56.18.45
169.254.241.4
127.0.0.1
4.用AWK实现文件某一列的累加:
有时候我们需要实现对文件里某一列数字的累加,比如如下文件aa里有四行,每行一个数字,如何实现这四个数字的累加呢?
[root@CCC-0(MYLINUX-5) /root]
# cat aa
1
2
3
4
[root@CCC-0(MYLINUX-5) /root]
# awk '{a=a+$1 }END{print a}' aa
10