壳牌文本处理三剑客之sed的使用

  

sed是流编辑器的缩写,流编辑器,主要用于对标准输出或文件进行处理。
  

  

语法:         stdout | sed[选项]“模式命令”   sed[选项]“模式命令”file1      


  

        # - n只打印静默模式匹配行,而不输出原行   # p是打印命令   & # 10140;sed helloWorld.sh/hello/p   # !/bin/bash      你好bash   回声“hello world”   回声“hello world”   & # 10140;sed - n helloWorld.sh/hello/p   回声“hello world”      # - e追加一组编辑命令   & # 10140;sed - n - e '/hello/p - e helloWorld.sh/hello/p   你好bash   回声“hello world”      # - f把所有编辑命令保存在文件中,适用于复杂编辑操作   & # 10140;猫edit.sed/hello/p   & # 10140;sed - n - f编辑。sed hello.md      # - e(或- r)支持扩展正则表达式   & # 10140;sed - n - e helloWorld.sh/你好|你好/p   你好bash   回声“hello world”      #我直接修改源文件内容   #年代是替换命令   #这里是吧helloWorld。上海文件中所有的你好改为hello123   sed - n - s/hello/hello123/g的helloWorld.sh      之前      


  

  

           匹配模式   说明               10命令   第十行         10年,20年的命令   第10到20行         10 + 5命令   第十到16行/pattern1/命令   匹配pattern1对应的行/pattern1/,/pattern2/命令   从pattern1对应的行开始,到pattern2的行         10/pattern1/命令   从第十行开始,到pattern1的行/pattern1/10命令   从pattern1对应的行开始,到第十行            

  


  

  

查询   

      <李> p打印匹配的内容李   
  

增加   

      <李>一个字符串行后追加   <李>我字符串行前追加   <李> r文件从外部文件读入,在匹配的行后追加   <李> w newfile中将匹配的行写入外部文件   
  

删除   

      <李> d删除李   
  

修改   

      <李> s/老/新替换行内第一个旧为新   <李> s/老/新/g行内所有老替换为新   <李> s/老/新/2 g从第2行开始到文件末尾的所有老替换为新   <李> s/老/新/ig行内所有老替换为新的,忽略大小写李   
  

示例:         #删除以系统开的头,并且以/sbin/nologin结尾的行   & # 10140;sed -我'/^ sys。* \/sbin \/nologin/d ' passwd_bak美元      #删除注释行,空行   sed -我的/[空白:]* #/d;/^ $/d ' passwd_bak      #查找在以流浪汉开头的行,下一行追加内容   & # 10140;sed - i '/^的流浪汉/这是追加的一行内容的passwd_bak      #把所有的根替换为root123   & # 10140;sed -我的s/根/root123/ig passwd_bak      #在所有以系统开的头,以nologin结尾的行,尾部追加_666   #其中,表示前面正则匹配到的内容   & # 10140;sed - i/^ sys。* nologin $/, _666/g的passwd_bak      #把所有以系统开的头,以nologin_666结尾的行改为   #以SYS_开的头,以_777结尾,其中\ 1表示前面括号中匹配的中间部分内容   & # 10140;sed - i ' s/^ sys \ (. * \) nologin_666/SYS_ \ 1美元_777/g的passwd_bak      #把1 ~ 10行所有的sys改为系统   & # 10140;sed - 1, 10年代/sys/sys/ig的passwd_bak      文#统计my . cnf中所做件中mysqld的子配置项数量   # sed查找从(mysqld)到下一个(。*)之间的行   # grep - v过滤注释,空行和[。*]行   # wc - l统计最后的行数   sed - n "/^ \ [mysqld \] $//^ \ [。* \]$/p”/etc/my.cnf | grep ev ' ^ $ | [#;] | ^ \ [。* | wc - l      之前      

注意:如果匹配模式中存在变量,则建议使用双引号,如sed - s/OLD_STR/NEW_STR美元/g”passwd_bak

  

到此这篇关于壳牌文本处理三剑客之sed的使用的文章就介绍到这了,更多相关壳文本处理sed内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

壳牌文本处理三剑客之sed的使用