LINUX学习—sed命令(LINUX三剑客)

sed

sed基本用法

sed( stream Editor)是一种流编辑器,默认不编辑原文件,仅对模式空间中的数据做处理,而后,处理结束后,将模式空间打印至屏幕;
sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
行编辑器:逐行处理(全屏编辑器如vi)
语法: sed [option] ‘AddressCommand’ file…

Option:
    -n:静默模式 ,不再默认显示模式空间中的内容,只显示符合条件的行  
    -i:直接修改原文件,慎用  
    -e SCRIPT -e SCRIPT:可以同时执行多个脚本;
    -f /PATH/TO/SED_SCRIPT:指定文件,也可以执行多个脚本;  
        sed -f /path/to/scripts file 
  表示使用扩展正则表达式

Address:
    1、StartLine, EndLine
        如1,100
        $:表示最后一行
    2、 使用正则表达式来指定模式 /RefExp/ 
        如:/^root/
    3、 /pattern1/, /pattern2/
        第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行;
    4、LineNumber
        指定的行
        $:表示最后一行  
    5、StartLine, +N  
        从StartLine行开始,向后的N行

Command:
    d:删除符合条件的行:  
    p:显示符合条件的行;  
    a \string: 在指定的行后面追加新行,内容为string  
        \n:可以拥有换行  
    i \string: 在指定的行前面添加新行,内容为string  
    r FILE:将指定文件内容添加至符合条件的行处  
    w FILE:将地址指定范围内的内容另存至指定的文件中;  
    s/pattern/string/修饰符: pattern中可以用正则表达式,而string不行,查找并替换,默认只替换每行中第一次匹配到的字符串;  
        加修饰符  
            g:全局替换
            i:忽略字符大小写
    也可以用其他分隔符代替/,只要保持三个统一就行,如s###,s@@@
            后项引用仍然适用:\(\), \1,\2
            &: 引用模式匹配到的整个串  
            l...e: like-->liker
            love-->lover (sed '/l..e/&r/g' file.txt)

            like-->Like
            love-->Love (sed '#l/(..e/)#L\1#g' file1)
                不能完全匹配字符串时不能用&便只能用后项引用。  

猜你喜欢

转载自blog.csdn.net/ihblxh/article/details/81951698