sed命令小总结

1、sed:Stream Editor,操作时,是逐行进行操作

2、sed命令

(1)删除符合条件的行

sed “1,2d” /etc/passwd 删除1,2

sed “3,$d” /etc/passwd 删除第3行到最后一行

sed “/oo/d” /etc/passwd 删除含有oo的行

sed “1,+2d” /etc/passwd 删除3

sed “1d” /etc/passwd   删除第一行

sed “/^\//d” /etc/passwd 删除以/开头的行(加\转义)

(2)p   显示符合条件的行

sed “/^\//” /etc/passwd  显示以/开头的行,并且将原本的文件显示一遍

sed -n “/^\//” /etc/passwd 只显示符合条件的行,原本的文件不显示

3)、a空格\string   在指定的行后面追加新行,内容为“string”,string可以加引号,也可以不加引号

  sed ‘/^\//a \#hello world’ /etc/passwd在以\开头的行下面追加一行#hello world

  sed “/^\//a#hello world \n#hello world” 在以\开头的行下面追加两行,\n为换行符

(4)i空格\string    在指定的行前面加新行,内容为string

(5)r 文件    将指定的文件的内容添加至指定的行处

sed “3r /var/log/boot.log” /etc/passwd    /var/log/boot.log中的内容加到底3行下面

sed “1,7r /var/log/boot.log” etc/passwd               中的内容分别加到第17行下面

(6)w 文件     将指定的范围呢的内容

sed -n /oo/w /tmp.oo.txt“ /etc/passwd  将含有oo的行另存为/tmp/boot.log

    -n 静模式,不再默认显示模式空间的内容

    -i  直接修改源文件

    -eSCRIPT  -e SCRIPT  可以同时执行多个脚本

    -f/PATH/TO/SED_SCRIPT  file

(7)s/查找的内容/string/   查找并且替换,默认只替换每一行中第一次被模式匹配的字符串(也可以用s###、是s$$$只要三个是一样的就行)

sed ‘s/oo/OO/’ /ETC/PASSWD         oo替换为OO

sed ‘s/^\//#’ /etc/passwd    将每一行行第一次匹配到的的/替换为#

  g:全局替换

  i:忽略字符大小写

C 将每行之间的空格删除并且打印

history | sed 's#[[:space:]]+##g' 将每行之间的空格删除并且打印(一个或者多个空格)(使用awk更简单)

 

【待补充】