sed可依照script的指令,来处理、编辑文本文件。多用于对文本的行来操作
参数说明
-e
-r 扩展正则表达式
;
动作说明
```
sed '1a\llll llllllll \n lllllll' t.txt
nl /etc/passwd | sed '2a drink tea'
nl /etc/passwd | sed '3,$d' # 插到第2行后
nl /etc/passwd | sed '2i drink tea' |cat -n # 插到第2行前
nl /etc/passwd | sed '2,5c No 2-5 number' # 替换
nl /etc/passwd | sed -n '5,7p' # 输出
nl /etc/passwd | sed -n '/root/p'
echo 192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0|sed 's/Bcast.*$//g'
nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/' # ;
sed -i 's/\.$/\!/g' regular_express.txt
sed -i '$a # This is a test' regular_express.txt
sed '/^$/d' etc/inittab
```
动作含义
a :新增, a 接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c接字串,这些字串可以取代 n1,n2 之间的行!
d :删除, d 后面通常不接任何;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,通常 p 会与参数 sed -n 一起运行~
s :取代,
+ g:全局替换
+ i:忽略字符大小写
通配符:
$:最后一行
$-1:倒数第二行
/pattern1/,/pattern2/ :第一次被模式1匹配到的行开始到第一次被模式2匹配到的行结束。
区域处理
>sed '1,2s/ok//'
   第一二行执行s/ok//操作!
>uptime|sed -n '/,/s/,/ /gp'
问题中/,/是个正则表达式,表示只要该行中有逗号,那么就执行s命令。
  将含有,的行进行 s/,/ /gp操作,将,全部换成空格并print。
网友评论