sed命令小记

Linux系统
363
0
0
2022-04-11
sed  将内容一行行加载到内存空间,处理,然后再打印到屏幕; 默认是不修改源文件的
sed -niefr 'line action 修饰符' file ...-n 静默模式 , 只打印处理的行
    -i 直接修改源文件
    -e script -e script 
    -f sed_script 
    -r  使用egrep
line 
    1,1005 
    $
    $-11,+21行开始,向后的2行,即1~3行
    /regexp/, /regexp/   
action 
    d   
    p   
    a \str   
    i \str   
    r file 
    w file 
    s/regexp/str/
        sed '1,$s/oot/OOT/' file  如果行范围是1,$即全文,则可省略 sed 's@oot@OOT@' file 
        &  引用匹配到的整个字符串
        后向引用  \( \)  \1  \2 
修饰符  gi

示例:

sed '3,$d' file   删除
sed '1,+2d' file 
sed '/oot/d' file   删除匹配到的行
sed '/^\//d' file   删除以 / 开头的行

sed -n '/^\//p' file  打印

sed '/^\//a \# hello world\n# hello linux' file  追加

sed '$r /etc/issue' file   读入
sed '1,2r /etc/issue' file 

sed '/oot/w /tmp/oot.txt' file   写出

sed 's@l..e@&r@g' file 
sed 's@\(l..e\)@\1r@g' file 
history | sed 's#^[[:space:]]*##g' | cut -d' ' -f1