sed

作者: Amy_Cui | 来源:发表于2018-10-18 21:14 被阅读12次

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。

相关文章

网友评论

    本文标题:sed

    本文链接:https://www.haomeiwen.com/subject/mqnszftx.html