您的位置:首页 > 其它

awk用法总结

2016-06-19 22:31 218 查看
1.通过正则表达式/^$/匹配空白行,动作为打印Blank line,即文件如果有N个空白行,AWK就在屏幕打印N个Blank line:

awk '/^$/ {print "Blank line"}' test.txt

建立脚本执行:

2.打印包含主机名的行,默认动作为打印

 awk '/HOSTNAME/' /etc/sysconfig/network

3.读取输入行并输出第一个字段,第二个字段,第三个字段。

echo hello the world | awk '{print $1,$2,$3}'

4.读取输入行并输出该行。

echo hrrd def asds | awk '{print $0}'

5.读取输入行并输出该行的字段个数。

echo hrrd def asds | awk '{print NF}'

6.读取输入行并输出该行最后一个字段。

echo hrrd def asds | awk '{print $NF}'

7.默认AWK读取数据以空格或制表符作为分隔符,但可以通过-F或FS变量来改变分隔符。
  awk -F: '{print $1}' /etc/passwd
  awk
 

awk 'BEGIN {FS = ":"} {print $1}' /etc/passwd

8.指定多个字段分隔符(文档内容为:hello the:word,!)

echo 'hello the:word,!' | awk 'BEGIN {FS="[:,]"} {print $1,$2,$3,$4}'

9.输出当前文档的当前行编号,第一个文件八行,第二个文件三行;

 awk '{print FNR}' test1.txt test2.txt

10.AWK将两个文档作为一个整体的输入流,通过NR输入当前行编号:

awk '{print NR}' test1.txt test2.txt

11.文档的每一行有多少字段

awk '{print NF}' test1.txt

12.读取每一行的前三个字段

awk '{print $1,$2,$3}' test1.txt

13.读取输入数据,以空白行为记录分隔符,即第一个空白行前的内容为第一个记录,第一个记录中的字段分隔符为换行符:awk实现打印所有的邮件时间,即每个记录的第三个字段。

awk 'BEGIN {FS="\n"; RS=""} {print $3}' test3.txt

$2打印每个记录第二行的字段

awk 'BEGIN {FS="\n"; RS=""} {print $2}' test3.txt

14.统计所有的空白行:

awk '/^$/ {print x+=1}' test.txt

15.打印总空白行个数:
awk '/^$/ {x+=1} END {print x}' test.txt

16.判断分区boot可用容量小于20MB时报警,否则显示OK。
     判断分区boot可用容量小于20000MB时报警,否则显示OK

17.打印每一行的字符长度。
    awk '{print length()}' test.txt

18.将passwd中所有的root修改为Jacob显示至屏幕

 awk -F: 'gsub(/root/,"jacob",$0) {print $0}' /etc/passwd
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: