sed行编辑器
说明:以行为单位进行处理,可以将数据进行替换、删除、新增、选取等特定工作
使用方式:sed [options] “Command” file
options:
- -n:静默模式,不再默认显示模式空间中的内容
- -i:直接修改源文件
- -e SCRIPT:可以同时执行多个脚本
- -f /PATH/TO/SED_SCRIPT
- -r:表示使用扩展正则表达式
Command:
- d:删除符合条件的行
- p:显示符合条件的行
- a \string:在指定的行后面追加新行,内容为string
- \n:用于换行
- i \string:在指定的行前面添加新行,内容为string
- c:取代,c的后面可以接字串
- s /pattern/string/修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的字符串
- g:行内的全局替换
- i:忽略字符大小写
- s///:查找并替换
文本:
hello1
hello2
hello3
1.只显示第2行
sed -n "2p" demo
2.替换
文本
###12312
###ininisaf
####usijfsa
sdfasfd
v
czvzcvz
id:8:init
将8改为10
sed -E "s/id:[0-9]:init/id:10:init/" inittable
或者简写为:
sed -E "s/(id:)[0-9](:init)/\110\2/" inittable
使用变量来改变:
version=2
sed -E "s/(id:)[0-9](:init)/\1$version\2/" inittable
修改IP:
文本
IPADDR=192.168.1.103
DNS=8.8.8.8
sed -E "s/(IPADDR=([0-9]?[0-9][0-9]?\.){3}).*/\1188/" ip
输出结果:
IPADDR=192.168.1.188
DNS=8.8.8.8