sed 行编辑器
使用方法
set [options] 'AdressCommand' file ...
指定option, Adress, Command
option
- -n:静默模式,不再默认显示模式空间中的内容
- -i:直接修改原文件
- -e SCRIPT -e SCRIPT:可以同时执行多个脚本
- -f /PATH/TO/SED_SCRIPT
- -r:表示使用扩展正则表达式
Command
- d:删除复合条件行
- p:显示复合条件行
- a\string:在指定的行后面添加新行,内容为string
- \n:换行
- i\string:在指定行前面添加新行,内容为string
- r FILE:将指定文件内容添加至符合条件的行处
- w FILE:将指定的范围内的行另存只指定文件中
- s/pattern/string/修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的
g:行内全局替换
i:忽略字符大小写
Adress
- 可以没有
- 给定范围(1,2)
- 查找指定行(先做匹配)
示例
- 第一行下面追加一行
sed -i “1a\helloworld” sort.txt - 删除文件第二行
sed -i "2d"sort.txt - 删除包含apple行
sed -i "/apple/d" sort.txt - 替换文件中的hello为nihao(直接替换)
sed -i "s@hello@nihao@" sort.txt - 将id:3替换为id:5(扩展替换)
sed -d "(id:)s/[0-6](defaultid:)/\15\2" sort.txt
3的前面后面都有内容,通过添加前后内容,扩大查找准确度,并使用(),只替换数字,通过引用的方式保留前后内容。留下静态数据,替换动态数据