通过实例讲解AWK一些基本操作

来源:互联网 发布:类似爱情2只有我知360 编辑:程序博客网 时间:2024/06/08 09:56

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

 

 

0 0
原创粉丝点击