Linux中的查找和替换

查找和替换 :

grep只能用于查找文件中的内容

sed可以查找,然后替换或者插入想要的内容

a :新增,a的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)

d 删除,因为是删除啊,所以d后面通常不接任何东西的

i : 插入i的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)

p :打印,亦即将某个选择的资料印出。通常 p 会与参数 sed

s :取代,可以直接进行取代的工作

 

查找和替换-举例 :

Linux中的查找和替换

删除/tmp/abc文件中第 2 5 行的内容 , 使用 sed '2,5d' abc

Linux中的查找和替换

•在/tmp/abc文件中第 2 行后面添加 123456 一行 , 使用 sed '2a 123456' abc

Linux中的查找和替换

在文件的最后一行前面添加 123456 , 使用正则表达式的 $ 符号($:锚定行尾) 命令 : sed '$i 123456' abc

Linux中的查找和替换

将文件中的 cat全部替换成 dog , 使用到正则表达式的  \1 (引用第一个左边以及与之对应的右边所包括的所有内容,同理还有\2,\3) , 命令 : sed 's/cat/dog/' abd    通过s(取代) 就使用cat把所有dog都替换了. 

Linux中的查找和替换

要想对原文件里的内容也进行修改 , 则需要在前面加上 - i 的参数 , sed -i 's/cat/dog/' abc , 这样才会对文件进行修改 , 上面没有加 -i 参数的只是对显示出来的信息进行修改 , 并没有对原文件进行修改 , 加了 -i 后则就不显示了 , 直接修改文件了.

如果要对原文件进行修改,使用 –i 选项(慎用)

 

转载自 : 51自学网​​​​​​​