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
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
相关文章推荐
- 第五题
- Ip地址和子网掩码和CIDR无间别域间路由
- HeyWeGo小组《Java程序设计》 2015—2016年学期团队项目总结
- 学习进度条(第十六周)
- Kolmogorov 的数学观与业绩
- MyEclipse-自定义文档注释模板
- 每日一命令(12)head (output the first part of files)
- Python字符串的encode与decode研究心得——解决乱码问题
- php发送get、post请求的6种方法简明总结
- BZOJ 1192: [HNOI2006]鬼谷子的钱袋 数学结论
- 防止表单重复提交
- csdn待改进点之19------>为什么这里的功能不是取消收藏? 这种体验让人抓狂
- 列表和元组
- 自定义控件起步(四)--自定义验证码(下)
- 启发孩子的几个小问题1
- 产生死锁的原因
- js在ie下打开对话窗口的方式
- code1064 虫食算
- Android 项目在Eclipse中的目录结构
- 《人性的弱点》卡耐基