Sed总结1

通过观察总结,Sed命令一般都有如下格式:

[寻址] 操作码/[操作数]/[辅助操作]

 

Sed中的寻址分为三种:

1、行地址

2、行范围地址

3、正则表达式(寻找匹配行)

 

Sed操作码有很多种,常见的包括插入i、添加a、替换s等

 

操作数则根据操作码的不同,格式有所不同。

 

辅助操作包括打印选项p、全局提示g等

 

 

<b>This</b> is what <b>I</b>   meant.

sed 's/<[^>]*>/ /g' html | sed 's/ [.]* / /g'

第一个个sed命令将<>结构全部过滤掉,并用空格代替

输出: This  is what  I  meant.

第二个命令将多余的空格(两个或两个以上的空格)全部过滤掉

输出: This is what I meant.

 

 

方括号[]的作用:blablabla请您补充~~~

没有用方括号的时候,匹配串可能会在最大范围内进行匹配,使用方括号的时候,就会逐个匹配,一旦出现第一个匹配就立即终止。

 

&符号的作用:在s操作中,&表示引用即将被替换的内容。

sed 's/<[^>]*>/ /g' html | sed 's/.*/&&&/g'
输出:This  is what  I  meant. This  is what  I  meant. This  is what  I  meant.

分析:.*的运算结果是整行语句,也就是说整行语句都要被替换。被替换成什么呢?&引用了被替换的内容。&&&将引用内容重复三次,所以输出了三次。

可以利用&符号在每行语句前面或者末尾添加固定内容。

 

N;

sed 's/<[^>]*>/ /g' html | sed = $1 | sed 'N;s//n//t/'

输出:1        This  is what  I  meant.

解释:

sed = filename 会导致这样一个输出:行号(独立一行),数据(新起一行),行号(独立一行),数据(新起一行),etc。 这里我们使用sed = $1, $1是shell特性,表示引用上一个命令的输出流。

第三个sed命令过滤掉了行号后的换行符(/n),N命令“添加下一笔资料到 pattern space”,简单说就是将行号后的下一行合并到当前行中进行处理。

 

sed选项

-i 就地操作,即我们常理解的,将文件中的部分内容处理并保存。如:

 sed -i "s/a/b/g" filename   



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值