Linux——sed实践

Linux——sed实践,第1张

sed是一个流编辑器,可以有效处理一行信息,根据需求输出内容。当然输入多行也可以一次处理多行。

需要注意的是sed *** 作并不会对原来的内容进行改变,对原文件增删改是临时的。

sed常用内部命令:

a   在匹配后面添加
i   在匹配前面添加
p   打印
d   删除
s   查找替换
c   更改
y   转换   N D P 

这些命令结合正则表达式可以起到很好的信息处理效果。

 sed的一些提示符

数字 表示新文本替换的模式

g: 表示用新文本替换现有文本的全部实例

p: 表示打印原始的内容

w filename: 将替换的结果写入文件

针对下列文本内容,使用 sed 命令完成以下 *** 作 

4000001476

4000000041

4000002754

4000000944

4000002549

(1)将文本内容中每行中的 400 替换为 800 显示,即输出如下:  8000001476 

8000000041 

8000002754 

8000000944 

8000002549 

                cat number.txt | sed -e 's/400/800/g'                

                        使用s(查找替换),并使用g提示符,查找替换所有的400,变为800 

(2) 使用正则表达式,将文本内容中每行的前三个数字,以小括号括起来显示, 即输出如下: 

(400)0001476

(400)0000041 

(400)0002754 

(400)0000944 

(400)0002549 

cat number.txt | sed -r 's/(^[0-9]{3})/()/'

         匹配前三个数字,将其用括号扩出,可以在之后以(\1)的形式使用这块内容。可以有多块,按序以数字命名。

 (3)使用正则表达式,将文本内容中每行的中间三个数字前后增加“-”符号, 即输出如下: 

400-000-1476

400-000-0041 

400-000-2754 

400-000-0944 

400-000-2549 

cat number.txt | sed -r 's/(^[0-9]{3})([0-9]{4})/--/'

        匹配前三个数字,再匹配四个数字,在每组之后加一个 - 。 

(4)​​​​​​​打印输出第3行到最后一行的内容,即输出:

4000002754

4000000944 

4000002549 

cat number.txt | sed -e '1,2d'

        这里只需要将前两行删去,就可以输出从第三行开始的内容。注意:删除并不会改变文件的原始内容。 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/739530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存