sed使用小结

1. 基本操作.

    a. $ echo "aabbcc" | sed -e 's/bb/dd/'  ###对标准输入进行替换.

        终端的输出为: aaddcc.

    b. $ sed -e 's/aaa/bbb/' 0<$input_file 1>$output_file  ###将输入文件的所有行首次出现的aaa字符串替换为bbb.

        's/.../.../g'模式为每行全替换.

    c. $ echo "aabbcc" | sed -e 's_bb_dd_' #同a.

        可以自由选择不同的分界符Delimiter, 只要不和找寻的字符串混淆即可.

    d. $ echo "aabbcc" | sed -e 's/cc/## & ##/'      ###’&’可以用来表示模式匹配的字符串.        

        终端的输出为: aabb## cc ##.

 

 

2. 扩展.

    a. $ echo "abcdef" | sed 's/./&:/4'   ### . 匹配单一字符, /4表示替换第四次匹配.

    终端的输出为: abcd:ef.

 

    b. $ echo "bc" | sed -n 's/a/b/p'    ###/p只打印有匹配成功的行.

    终端的输出为:空.

 

    c. $ echo "abc" | sed -n 's/a/b/w output'   ###/w 将匹配的行写入到文件output, 可为空.

    文件output 内容: bbc.

 

    d. $ echo "abc" | sed -e 's/a/A/' -e 's/b/B/'  ###通过-e选项, 由sed并行匹配.

    终端的输出为:ABc.

 

 

 

 

 

3. 问题:

    a. why difference between:

         echo abcd123ddc | sed 's//([a-z]*/).*//1/'   #输出为: abcd

         echo abcd123ddc | sed 's//([a-z]*/).//1/'     #输出为: abcd23ddc

    提示: 正则式是最大贪婪性的,第一式的/([a-z]*/) 匹配了abcd, .* 匹配了所有余下的123ddc; 第二式的/([a-z]*/) 匹配了abcd, .匹配1.  即abcd1被匹配为abcd.

 

    b. echo "111aaa222bbb333dddd" | sed 's/^[a-z]*//2' not work?

 

 

 

src: http://www.grymoire.com/Unix/Sed.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值