sed命令集锦

Sed

1、删除:d命令

sed '2d' /root/passwd      -----删除/root/passwd文件的第二行。

sed '2,$d' /root/passwd   -----删除/root/passwd文件的第二行到末尾所有行。

sed '$d' /root/passwd   -----删除/root/passwd文件的最后一行。

sed '/root/d ' /root/passwd -----删除/root/passwd文件所有包含root的行。

2、替换:s命令

sed 's/bin/newbin/g' /root/passwd

##  在整行范围内把bin替换为newbin。如果没有g标记,则只有每行第一个匹配的bin被替换成newbin。

sed -n 's/^root/myroot/p' /root/passwd

##  (-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的root被替换成myroot,就打印它。

sed 's/^root/&localhost/' /root/passwd

sed -n 's/bin/&test/gp' /root/passwd

##  &符号表示追加一个串到找到的串后。所有以root开头的行都会被替换成它自已加 localhost,变成rootlocalhost。

l

sed 's#bin#newbin#g' /root/passwd

##  不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有bin替换成newbin。

选定行的范围:逗号

sed -n '5,/^root/p' /root/passwd

## 打印从第五行开始到第一个包含以root开始的行之间的所有行。

多点编辑:e命令

sed -e '1,5d' -e 's/bin/newbin/' /root/passwd

##  (-e)选项允许在同一行里执行多条命令。如例子所示,第一条命令删除1至5行,第二条命令用newbin替换bin。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。

3、从文件读入:r命令

sed '/root/r file' /root/passwd

-----file里的内容被读进来,显示在与root匹配的行下面,如果匹配多行,则file的内容将显示在所有匹配行的下面。

4、写入文件:w命令

sed -n '/root/w file' /root/passwd

-----在/root/passwd中所有包含root的行都被写入file里。

5、追加命令:a命令

sed '/^root/a\\--->this is a example' /root/passwd    

##  '--->this is a example'被追加到以test开头的行(另起一行)后面,sed要求命令a后面有一个反斜杠。

6、插入:i命令

sed '/root/i\\some thing new -------------------------' /root/passwd

如果root被匹配,则把反斜杠后面的文本插入到匹配行的前面。

7、退出:q命令

sed '10q' /root/passwd

-----打印完第10行后,退出sed。

猜你喜欢

转载自blog.csdn.net/csdn_hzx/article/details/80685350