sed简单用法

简介:

    sed是善于处理行的,善于处理文本中的一行一行又一行!

    说一下简单的sed的知识:

    sed的基本原理: 首先把文本中的内容,拿到内存中的模式空间去一行一行的做比较,比较完后,将模式空间里剩下的内容做出显示,输出到屏幕上。

    所以,原理上,sed不会对文本内容本身做改变。

    几个简单命令:

    # sed '1,2d'  1.txt     //删除1.txt文本中的第1行到第2行。

    # sed '1,$d'  1.txt     //删除第1行到最后一行,$d代表最后一行,1和$之间有逗号。

    # sed '1,+2d' 1.txt     //删除第1行后,再删除2行。

    # sed '/^\//d' 1.txt    //删除首字母是“/”开头的行!“^”这个符号,在键盘的阿拉伯数字6

                               的上面,代表以什么什么开头。  “\”,这个我们叫做反斜线,这                               个可以去掉“/”的特殊含义,恢复它的字面含义。

====================================================================

    #sed '1p'  1.txt  //打印第1行

  

    #sed  -n '1p' 1.txt   //比较和 sed '1p' 1.txt有什么不同,-n的意思是静默模式,所谓静默,

                            就是只显示出你想要的东西,其他的东西不会输出,我想你会喜欢这个                               -n这个选项。

====================================================================

    #  sed '/^\//a hello world' 1.txt   // -a这个选项是追加,append,英语好的同学,直接man                                            sed就行

                                英语不太好的同学,就记住吧,或者百度,最好记在脑子里。

                                    这句话的意思是,在首字母为“/”的后面追加hello world.



    # sed '/^\//a hello linux' 1.txt   //-i也是追加,在首字母是“/”的前面追加hello linux

=====================================================================

    #sed 's#root#ROOT#g' 1.txt   //作用是把root变成ROOT,而且是全局替换,g是global,全局的

                                    意思,s 是替换的意思。

    小注:   #sed 's#root#ROOT#g' 1.txt 等于  #sed 's/root/ROOT/g' 等于 #sed                                                's*root*ROOT*g'   ,只要是3个相同的字母就可以。

======================================================================

后向引用,自己看看,自己敲敲,琢磨琢磨,不难:

     #sed 's#\(root\)#\1R#g' 1.txt    //这个“\1”的意思就是代表前面的root,在后面多一个R.

     #sed 's#\(root\)#&R#g' 1.txt      //这个&的作用也是代表前面的root.

     #sed -E 's#r(oot)#R\1#g'          //-E的作用是代表了“\”,有了-E,就不用反斜线“\”了

                                         自己动手敲,敲出来的感觉,不需要我多解释。

=======================================================================

    #sed -e '1d' '2p'  1.txt   //-e 的作用是执行了1d,然后可以继续执行2p. 一次性执行多个命令

=======================================================================

    #sed -i '/\/root/a' 1.txt  //-i 不能乱用,慎用!!!这个-i直接给改变原来的文件,你自己

                                    没有掌握好的情况下,建议你慎用!

   sed 还有很多用法,你可以去百度,可以去man,自己查询,我这里只说了一些常用、常见的用法,东西看上去好像不少,实际上东西不多,对于初学者,我建议,大量的练习,练习,练习,没有好的方法,熟能生巧。想想上一年级的时候学习汉字,就是一个汉字写10遍,甚至更多,所有对于sed而言,你可以试一试不断练习的方法。方法仅供参考!  对于聪明同学而言,不多说!



本文转自 曾国藩_6868 51CTO博客,原文链接:http://blog.51cto.com/8184069/1708756

相关文章
|
1月前
|
Perl
sed的用法
sed的用法
27 2
|
2月前
|
Unix Perl
sed的具体用法
sed的具体用法
18 2
|
2月前
|
Perl
sed的复杂用法
sed的复杂用法
27 2
|
10月前
|
Perl
sed 基本用法
sed 基本用法
64 0
|
存储 机器学习/深度学习 Unix
sed 和 awk 使用方法 | 学习笔记
快速学习 sed 和 awk 使用方法。
129 0