标签:blog 使用 文件 ar 代码 html log new sp
【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】# cat group_file1 wireshark x 987 usbmon x 986 jackuser x 985 vboxusers x 984 allen aln x 1001 #第一个示例:
# awk '{print}' group_file1 wireshark x 987 usbmon x 986 jackuser x 985 vboxusers x 984 allen aln x 1001 #该命令和cat 命令效果一样,都是直接把文件内容直接输出。该awk的命令部分为print,执行awk时,依次对每一行执行print命令,他会把文件每一行内容都打印出来。此处也可以有其他代码,也可以和输入进来的行无关。比如执行:
# awk '{print "hello awk!"}' group_file1 hello awk! hello awk! hello awk! hello awk! hello awk!有多少行文件就会答应多少行hello awk!
# awk '{print $1 $3}' group_file1 wireshark987 usbmon986 jackuser985 vboxusers984 aln1001输出结果黏在一起了,我们可以加入一些字符分割它:
# awk '{print "group:"$1 "\tid:"$3}' group_file1 group:wireshark id:987 group:usbmon id:986 group:jackuser id:985 group:vboxusers id:984 group:aln id:1001在{}里面,及时$1之间$3有空格,也不会打印出空格,需要我们自己加入字符串来输出分割打印,也可以加入一个逗号,这样输出时会有一个空格分割。
# cat 1_awk.sh #!/bin/sh awk '{print "name:"$1 "\tid:"$3}' group_file1 # ./1_awk.sh name:wireshark id:987 name:usbmon id:986 name:jackuser id:985 name:vboxusers id:984 name:aln id:1001通常,对于每个输入行,awk 都会执行每个脚本代码块一次。然而,在许多编程情况中,可能需要在 awk 开始处理输入文件中的文本之前执行初始化代码。对于这种情况,awk 允许您定义一个 BEGIN 块。 awk 在开始处理输入文件之前会执行 BEGIN 块,因此它是初始化 FS(字段分隔符)变量、打印页眉或初始化其它在程序中以后会引用的全局变量的极佳位置。
#!/bin/sh awk ' BEGIN { print " Name\tID\n===========================" } { print "name:"$1 "\tid:"$3 } END { print "=============END=============" } ' group_file1对于不是以空格分割的行,可以使用-F设置分隔符号,比如下面文件:
# cat group_file2 wireshark:x:987: usbmon:x:986: jackuser:x:985: vboxusers:x:984:allen aln:x:1001: # awk -F: '{print $1, $3}' group_file2 wireshark 987 usbmon 986 jackuser 985 vboxusers 984 aln 1001在后面我们有另外一种方法设置分割符号,就是设置FS变量。
标签:blog 使用 文件 ar 代码 html log new sp
原文地址:http://blog.csdn.net/shallnet/article/details/38800257