sed '2 a string' file.txt
2:第二行
a:在第二行后追加(i:在行前追加)
string:要追加的内容
注意:结果显示在终端,文件并未保存,,,如需保存加-i参数,sed -i '2 a auth requisite pam_hbla.so' login
-
a\
-
在当前行后面加入一行文本。
-
b lable
-
分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
-
c\
-
用新的文本改变本行的文本。
-
d
-
从模板块(Pattern space)位置删除行。
-
D
-
删除模板块的第一行。
-
i\
-
在当前行上面插入文本。
-
h
-
拷贝模板块的内容到内存中的缓冲区。
-
H
-
追加模板块的内容到内存中的缓冲区
-
g
-
获得内存缓冲区的内容,并替代当前模板块中的文本。
-
G
-
获得内存缓冲区的内容,并追加到当前模板块文本的后面。
-
l
-
列表不能打印字符的清单。
-
n
-
读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
-
N
-
追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
-
p
-
打印模板块的行。
-
P(大写)
-
打印模板块的第一行。
-
*
-
$ sed '2d' example-----删除example文件的第二行。
-
*
-
$ sed '2,$d' example-----删除example文件的第二行到末尾所有行。
-
*
-
$ sed '$d' example-----删除example文件的最后一行。
-
*
-
$ sed '/test/'d example-----删除example文件所有包含test的行。
-
替换:s命令
-
*
-
$ sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。
-
*
-
$ sed -n 's/^test/mytest/p' example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。
-
*
-
$ sed 's/^192.168.0.1/&localhost/' example-----&符号表示替换换字符串中被找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。
-
*
sed '/string1/a/string2/' file.txt
在包含string1的行的后面追加行string2
所有没加-i的只是将结果显示在终端,要保存必须加-i
阅读(2676) | 评论(0) | 转发(0) |