linux中grep、sed、awk使用简介,grepawk


linux文件操作命令介绍
1)grep
grep 用于在文件中查找符合条件的记录
grep 参数 过滤条件 文件
过滤的条件中可使用正则表达式
-c 显示符合的行数
-i 忽略大小写
-n 显示符合要求的记录,包含行号
-v 显示不符合要求的记录
-A n 显示符合要求的记录,及下面的n行
-B n 显示符合要求的记录,及上面的n行
-C n 显示符合要求的记录,及上面和下面各n行

例如:grep -n 'perl' yum.log-20160823

2)sed
sed 用于查询符合条件的文件并输出到屏幕或将查询结果写到文件
sed 参数 过滤条件 文件

a)显示第几行记录,用字母p
单引号中的n表示第几行
显示第n行记录 sed -n 'n'p 文件名

显示第m,n行记录 sed -n 'm,n'p 文件名

显示最后一行记录 sed -n '$'p 文件名

b)显示包含条件的记录
sed -n '/tomcat/'p /var/log/tomcat.log

c)显示包含多个条件的记录
sed -e '/tomcat/'p -e '/2017-03-08/'p -n /var/log/tomcat.log

d)删除第几行记录,用字母d
单引号中的n表示第几行
删除第n行记录 sed -n 'n'd 文件名

删除第m,n行记录 sed -n 'm,n'd 文件名

删除最后一行记录 sed -n '$'d 文件名

e)替换字符,字符s表示替换,g表示在文件中所有出现的地方进行替换
sed '1,9s/09/nine/g' /var/log/tomcat.log

f)将匹配到字符进行位置替换,替换的字符用()包裹起来,括号前需加\,屏蔽特殊字符
sed 's/\(test\)\(log\)/\2\1/g' /var/log/tomcat.log

g)修改文件,字符s表示替换,g表示在文件中所有出现的地方进行替换
sed -i '1,9s/09/nine/g' /var/log/tomcat.log

3)awk
awk 用于从文件中截取符合条件的记录
awk 参数 过滤条件 文件

a)显示获取到的符合条件的记录,文件中的列以:分割,显示第3列记录
head -n10 /var/log/tomcat.log| awk -F':' '{print $3}'

b)显示符合条件记录
awk '/log/' /var/log/tomcat.log

c)显示符合多个条件记录

awk -F':' '/log/ {print $1,$4} /2017/ {print $2,$7}' /var/log/tomcat.log

d)可以进行逻辑条件的判断,> >= < <= !=等,条件中加""表示字符,否则表示为数字
awk -F':' '$2>100' /var/log/tomcat.log

NF:用分割符分割后,产生的列数
$NF:最后1列的值
NR:行数

相关内容