关于sed的简单用法
2018-12-24 本文已影响7人
Prince_wyf
sed 是流编辑器 (stream editor )的缩写。此外还可以配合正则表达式使用,功能十分强大,下面将介绍如何利用sed对文件进行增删改查操作。
- 改 (s**g)
# 语法 sed -i 's/old/new/g' filename # -i 选项表示将替换结果写入原文件,如果不加 -i 则只会在终端打印但是不会修改原文件
cat ip.txt
ip1=static
ip2=static
ip3=static
1.基本语法:sed -i 's/static/dhcp/g' ip.txt
修改后:
ip1=dhcp
ip2=dhcp
ip3=dhcp
2.如果只想要修改第2行的可以 (注意:不管任何信息只要占一行也算一行)
sed -i '2s/static/dhcp/g' ip.txt
3.如果想修改第二个匹配到的 (注意:2s 是修改第二行的,而2g 则是修改匹配到的第二个的 )
sed -i 's/static/dhcp/2g' ip.txt
4.基于正则
sed -i '/reg/s/old/new/g' ip.txt
sed -i '/^ip2/s/dhcp/static/g' ip.txt # 是不是很简单,哈哈
- 删 (d)
基本语法
sed -i '2d' ip.txt # 删除第二行的内容
sed -i '/reg/d' ip.txt # 基于正则删除
- 增 (a)
基本语法
sed -i '2a name=zhangsan ' ip.txt # 在第二行后面加
sed -i '/^ip2/a age=18' # 基于正则匹配添加
补充:
删除空行
sed -i '/^$/d' filename # ^$ 代表用正则匹配的空行
- 查 (p)
基本语法 #注意这里不再是 -i 而是 -n
sed -n '2p' ip.txt #查出第二行内容并打印输出
sed -n '/^ip2/p' ip.txt # 基于正则查找