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。