sed的学习

sed学习:
sed全名叫stream editor,流编辑器,用程序的方式来编辑文本,相当的hacker啊。sed基本上就是玩正则模式匹配,所以,玩sed的人,正则表达式一般都比较强。
$sed"s/my/Hao Chen's/g"pets.txt
g表示一行中的所有匹配
$sed"s/my/Hao Chen's/g"pets.txt > hao_pets.txt
或者-i重定向回原来的文件中
^ 表示一行的开头。如:/^#/ 以#开头的匹配。
$ 表示一行的结尾。如:/}$/ 以}结尾的匹配。
\< 表示词首。 如 \<abc 表示以 abc 为首的詞。
\> 表示词尾。 如 abc\> 表示以 abc 結尾的詞。
. 表示任何单个字符。
* 表示某个字符出现了0次或多次。
[ ] 字符集合。 如:[abc]表示匹配a或b或c,还有[a-zA-Z]表示匹配所有的26个字符。如果其中有^表示反,如[^a]表示非a的字符
zhangxin@nimei:~/bashDir$ sed "3,6s/zhangxin/my/g" pets.txt 
This is zhangxin's cat
  zhangxin's cat's name is betty
This is my's dog
  my's dog's name is frank
This is my's fish
  my's fish's name is george
This is zhangxin's goat
  zhangxin's goat's name is adam
替换3到6行的内容
$sed's/s/S/1'my.txt
只替换每一行的第一个s
$sed's/s/S/3g'my.txt
替换每一行第3个以后的s
多模式匹配:
$sed'1,3s/my/your/g; 3,$s/This/That/g'my.txt
&可以替代要被匹配的变量
$sed's/my/[&]/g'my.txt


sed下的命令:
先来看N命令 —— 把下一行的内容纳入当成缓冲区做匹配。
sed "N;s/zhangxin/zhang/" filepath
此中会先将偶数行的内容放在奇数行中,而上述的正则表达式中并不全部匹配,所以偶数行中的相应内容不会被替换掉。
a和i命令:均为添加行,其中na表示在第n行之后追加一行,ni表示在第n行前面增加一行,也可以在匹配行后面使用a或者i,如下:
sed "s/zhang/a -----------" filename
sed "s/zhang/i -----" filename
c命令:替换匹配行
sed "s/zhangxin/c replace string" filename
d命令:删除匹配行
sed "s/zhangxin/d" filename
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值