如有侵权,请联系作者。
转载请注明出处。
记录自己,帮助他人。
标签:Linux,linux,sed,命令,文本文件,操作文本文件,追加内容,删除内容。
修订历史
- 2020-07-10:首次编辑。
说明
操作一个文本文件,一般都是通过 vim 程序,先打开该文件,然后再执行增删改查。如果遇到无法进入文件但要对文件进行修改,vim 就无能为力了。使用 sed 程序可以满足这个需求,sed 无需进入文件,可以直接对文件进行操作。
另,sed 不仅可以在不打开文件的前提下直接操作文件,还可以通过执行脚本修改文件,支持批量修改文件。
注意,-i 可以直接修改文件,属于危险操作,请确认后执行。-i 后的参数必须放在单引号内。
添加
-
在第 5 行后添加一行,内容为“This is the content.”。原第 6 行变为第 7 行,以此类推。
注意:如果添加的内容以空格为开头,空格需要转义为“\ ”,多个空格使用多个转义“\ \ \ \ ”即可。
sed -i '5aThis is the content.' <file_path>
删除
- 删除第 5 行:
sed -i '5d' <file_path>
- 删除最后一行:
sed -i '$d' <file_path>
修改
- 实际使用中发现,如果要替换,会替换一个,或者替换所有。没有找到替换指定行内特定内容的方法,所以不如把第 N 行删掉,然后在第 N - 1 行后添加一行新内容。即,先执行删除,再执行增加。如,修改第 5 行:
sed -i '5d' <file_path>
sed -i '5aThis is the content.' <file_path>