Shellsed

关于sed的简单用法

2018-12-24  本文已影响7人  Prince_wyf

sed 是流编辑器 (stream editor )的缩写。此外还可以配合正则表达式使用,功能十分强大,下面将介绍如何利用sed对文件进行增删改查操作。

  1. 改 (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   # 是不是很简单,哈哈
  1. 删 (d)
 基本语法
sed  -i '2d' ip.txt     # 删除第二行的内容
sed -i '/reg/d' ip.txt # 基于正则删除
  1. 增 (a)
基本语法
sed -i '2a name=zhangsan ' ip.txt    # 在第二行后面加
sed -i '/^ip2/a age=18'   # 基于正则匹配添加
补充:
删除空行
sed -i '/^$/d' filename   # ^$ 代表用正则匹配的空行
  1. 查 (p)
基本语法  #注意这里不再是 -i  而是 -n
sed -n '2p' ip.txt    #查出第二行内容并打印输出
sed -n '/^ip2/p' ip.txt   # 基于正则查找  

这里只是一些基本用法,具体还要结合实际情况来进行更复杂的操作。。。

上一篇下一篇

猜你喜欢

热点阅读