AI智能
改变未来

grep cat tail head sed


一 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的命令自行参考网上的教程

 

 

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » grep cat tail head sed