Linux命令之Sed

以行为单位的新增/删除

  • 删除
#删除2到5行
nl /etc/passwd  | sed '2,5d'
#删除第三行
nl /etc/passwd | sed '3d'
#删除从第三行开始到最后一行的行
nl /etc/passwd | sed '3,$d'
  • 新增

a->目标行后面添加,i ->目标行前面添加

nl /etc/passwd | sed '2a xuzhang' 
nl /etc/passwd | sed '2i xuzhang' 
#添加多行的话,每一行以\隔开就行
nl /etc/passwd | sed '2a xuzhang\
maitng'

以行为单位的替换与显示

  • c
nl /etc/passwd | sed '2,5c No 2-5 number'
output:
1 root:x:0:0:root:/root:/bin/bash
No 2-5 number
6 sync:x:5:0:sync:/sbin:/bin/sync
.....(后面省略).....
  • p
#打印5~7行
nl /etc/passwd | sed -n '5,7p'
#将匹配到root的行进行打印
nl /etc/passwd | sed '/root/p'

数据的搜寻并删除

#将有root的行进行删除。
nl /etc/passwd | sed '/root/d'

搜寻并执行命令

#搜寻含有root的行,替换bash成blueshell,并将其打印,多个命令的话,用花括号,并将命令以;隔开。
nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}'

数据查找并进行替换

sed 's/要被取代的字串/新的字串/g',g代表全局替换。

你可能感兴趣的:(Linux命令之Sed)