关于awk命令
awk是一个强大的文本分析工具,,相对grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大;
简单来说,awk就是把文件逐行的读入,以空格为默认分隔符将每行进行切片,切开的的部分再进行各种分析处理;
demo
vi log.txt
2 this is test
3 Do you like awk
This’s a test
10 There are orange,apple,mongo
输出文本的第一项和第四项
awk ‘{print $1,$4}’ log.txt
过滤第一列大于2的行
awk ‘$1 > 2’ log.txt
过滤第一列等于2并且第二列等于this的行
awk ‘$1 == 2 && $2 == this’ log.txt
统计文本行数
awk ‘END{print NR}’ log.txt
统计文本的字段数量(用空格分隔的字段)
awk ‘{print NF}’ log.txt
统计字符串长度
awk ‘{print length($1)}’ log.txt
关于sed命令
sed是linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增删改查等操作,支持按行、字段、正则匹配文本内容,灵活方便,特别适合于大文件的编辑。
打印1-3行
sed -n ‘1,3p’ log.txt
打印第三行
sed -n ‘3p’ log.txt
删除3-13
sed ‘3,+13d’ log.txt 或者sed ‘3,16d’ log.txt