我使用下面的这段文本做演示:
$ cat pets.txt
This is my cat
my cat's name is betty
This is my dog
my dog's name is frank
This is my fish
my fish's name is george
This is my goat
my goat's name is adam
把其中的my字符串替换成Hao Chen’s,下面的语句应该很好理解(s表示替换命令,/my/表示匹配my,/Hao Chen’s/表示把匹配替换成Hao Chen’s,/g 表示一行上的替换所有的匹配):
$ sed "s/my/Hao Chen's/g" pets.txt
This is Hao Chen's cat
Hao Chen's cat's name is betty
This is Hao Chen's dog
Hao Chen's dog's name is frank
This is Hao Chen's fish
Hao Chen's fish's name is george
This is Hao Chen's goat
Hao Chen's goat's name is adam
注意:如果你要使用单引号,那么你没办法通过’这样来转义,就有双引号就可以了,在双引号内可以用”来转义。
再注意:上面的sed并没有对文件的内容改变,只是把处理过后的内容输出,如果你要写回文件,你可以使用重定向,如:
$ sed "s/my/Hao Chen's/g" pets.txt >hao_pets.txt
或使用 -i 参数直接修改文件内容:
$ sed -i "s/my/Hao Chen's/g" pets.txt
在每一行最前面加点东西:
$ sed 's/^/#/g' pets.txt
#This is my cat
# my cat's name is betty
#This is my dog
# my dog's name is frank
#This is my fish
# my fish's name is george
#This is my goat
# my goat's name is adam
在每一行最后面加点东西:
$ sed 's/$/ --- /g' pets.txt
This is my cat ---
my cat's name is betty ---
This is my dog ---
my dog's name is frank ---
This is my fish ---
my fish's name is george ---
This is my goat ---
my goat's name is adam ---
1、替换第一次搜索到的内容,命令如下:sed 's/要替换的内容/新的内容/' 要处理的文件如下图,将第一个小写的b替换成了大写的B。
2、在全文中替换所有能匹配的内容,命令如下:sed 's/要替换的内容/新的内容/g' 要处理的文件如下图,将所有的小写的b替换成了大写的B。
3、替换某一行的内容,命令如下:sed '行号c 新的内容' 要处理的文件如下图,将第二行内容替换成了“new test!”。
4、替换多行的内容,命令如下:sed '起始行号,终止行号c 新的内容' 要处理的文件如下图,将第二行到第六行内容替换成了“new test!”。
5、上述这些替换命令都只是将替换的结果显示在屏幕上,如果想替换的结果直接保存到原文中,就只需加上-i参数。
6、sed命令中替换与被替换的部分都允许使用正则表达式。比如,以下命令将所有数字替换成了“好的”。sed 's/[0-9]/好的/g' testFile2.txt 。用以上命令选择一个在最后一行插入就可以了。
用sed命令在行首或行尾添加字符的命令有以下几种:假设处理的文本为test.file
在每行的头添加字符,比如"HEAD",命令如下:
sed 's/^/HEAD&/g' test.file
在每行的行尾添加字符,比如“TAIL”,命令如下:
sed 's/$/&TAIL/g' test.file
运行结果如下图:
几点说明:
1."^"代表行首,"$"代表行尾
2.'s/$/&TAIL/g'中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了
例:
3.如果想导出文件,在命令末尾加">outfile_name";如果想在原文件上更改,添加选项"-i",如
4.也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符"HEAD"、“TAIL”,命令:sed '/./{s/^/HEAD&/s/$/&TAIL/}' test.file
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)