sed 没有颜色显示,也比grep用起来麻烦,主要功能在于 替换!

1、查找功能格式: sed  –n  ‘/ 欲匹配字符 / ’p  文件名  

                     (加p才能打印出来)

                     (-n是去除在最后再显示原文件内容,不然会在匹配完成后把整个原文件再打印一次)

2、使用正则时候,需要 脱义 或者 –r 

 

3、显示某行 : 在 ‘  ’ 中写入数字 不加 / / ,       

                 sed  -n  ‘ 数字 ’p   文件名

 

        4、显示从a行至b行:   用 , 分隔 ‘  a , b  ’                       

                        从某行显示至尾行则用 $ 表示, ‘ a , $ ’

 

        5、  |   可以匹配多个符合条件的内容  ‘  / 匹配A  | 匹配B  /  ’

               -e  可以一个命令运行多次匹配  

 

6、 sed 在匹配项后p前加上 I 则可以 忽略匹配项大小写             

                   sed  -n  '/ 欲匹配字符 /' Ip    文件名

 

7、sed 在匹配项后加上d ,删除匹配到的内容后显示剩余内容。(不真实改变文件)

                   sed     ‘匹配项’d  文件名

     sed 加上 –i ,在匹配项后加上d ,则从文件中真实删除符合匹配项的行

                   sed   -i  ‘匹配项’d  文件名

                          匹配项可以是行号范围可以是具体字符   ’ 10 ’,’ 1,10 ’ ,’/ root / ’ 

 

 

查找符合root的行,加p才能打印,加n才能消除结尾打印全文。

 

-r 才能支持正则表达 + ,不然需要 \ + 脱义。

 

 

显示第N行,数字不需要用 / / 括起来。   这里显示第2行。

显示2行至5行,中间逗号间隔

显示25行至末尾,用 $ 表示末尾

 

打印第1行,再把匹配bus 的也打印出来。(记得要加 –n 清除打印原文件全文)

 

如果几个 -e 的内容都指向同一个目标,这个目标会被打印2次,因为每次 –e 都会被看成一次单独的命令。

打印第一行,匹配root 的行,匹配含有o的行(oo* 因为 * 可以是零个o,所以是可以匹配出只要含一个o的项目的)

 

加上 I 可以忽略大小写进行匹配

 

 

比如很大的日志文件需要删除某个日期段的日志,可以 grep  –n 先显示出行号,然后使用sed  ‘匹配项’d  来删除。

删除1~25行后显示剩余内容,wc –l 查询可见并没有对文件内容进行真实删除。

真实起效删除就要加 – i ,则确确实实在文件中删除匹配项的行

 

原文件

匹配字符项 user2 删除后

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信