一 grep
1.1 前、后、前后
grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行
1.2 显示所有以d开头的文件中包含searchKeyWord的行
grep \\\’searchKeyWord\\\’ d*
1.3 输出以hat结尾的行内容
cat test.txt |grep hat$
1.4 显示在aa,bb,cc文件中匹配searchKeyWord的行
grep \\\’searchKeyWord\\\’ aa.log bb.log cc.log
1.5 显示包含ed或者at字符的内容行
cat test.log |grep -E \”ed|at\”
1.6 邮箱、手机号匹配
grep -oP \”[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+\” file.log
grep -E \”\\<1[3|4|5|8][0-9]{9}\\>\” file.log
二 使用cat、tail、head组合
1、查看最后1000行的数据
cat filename | tail -n1000
2、查看1000到3000行的数据
cat filename | head -n3000 | tail -n+1000
1、cat filename 打印文件所有内容
2、tail -n1000 打印文件最后1000行的数据
3、tail -n+1000 打印文件第1000行开始以后的内容
4、head -n1000 打印前1000的内容
三 使用sed命令
[code]命令 功能a\\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\\”续行c\\ 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用\"\\\"续行i\\ 在当前行之前插入文本。多行时除最后一行外,每行末尾需用\"\\\"续行d 删除行h 把模式空间里的内容复制到暂存缓冲区H 把模式空间里的内容追加到暂存缓冲区g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容G 把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面l 列出非打印字符p 打印行n 读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理q 结束或退出sedr 从文件中读取输入行! 对所选行以外的所有行应用命令s 用一个字符串替换另一个g 在行内进行全局替换w 将所选的行写入文件x 交换暂存缓冲区与模式空间的内容y 将字符替换为另一字符(不能对正则表达式使用y命令)
sed命令擅长行信息输出,常用场景如下:
3.0 打印第3行
sed
-n
\'3p\'
xxx
.log
3.1 显示1000到3000行的数据
sed -n\’1000,3000p\’ xxx.log
3.2 用world 替换yum.log文件中的root
sed
-i
\'s/root/world/g\'
yum.log
与上面的命令类似:
sed
-i
\'s#searchKeyWord#replacedKeyWord#g\'
h.txt
s==search 查找并替换
g==global 全部替换
-i: implace
3.3 匹配过滤
sed
-n
\'/root/p\'
yum.log
3.4
显示包含\”hhh\”的行到包含\”omc\”的行之间的行
sed
-n
\'/hhh/,/omc/p\'
yum.log
3.5 打印1-5行,并显示行号
sed
-n-e
\'1,5p\'
-e
\'=\'
yum.log
3.6 打印最后一行
sed
-n
\'$p\'
yum.log
3.7 在文件第一行和第四行的每行下面添加hahaha
sed
\'1,4i hahaha\'
yum.log
3.8
删除第3到第9行
sed
\'3,9d\'
/var/log/yum
.log
其他更多关于sed的命令自行参考网上的教程