首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

sed应用杂谈

2013-01-28 
sed使用杂谈1.关于打印。无论命令中选择对哪些行执行命令,sed默认会打印每一行。a) 对于不需要执行命令的行,

sed使用杂谈

1.  关于打印。

无论命令中选择对哪些行执行命令,sed默认会打印每一行。

a) 对于不需要执行命令的行,sed打印当前行的原始内容。

b) 对于需要执行命令的行,在命令执行完成后,sed打印被命令编辑过后的当前行的内容。

c) 如果命令本身就是打印命令p,则执行命令的过程,就是打印当前行一次。而命令执行完成后,sed又会按照b)中的描述,再打印一次当前行。因此,当前行会被打印两次。

d) 可以使用-n选项关闭默认的打印。这样的话,只有匹配了p命令的行,才会被打印。

 

2. 仅修改第一个(第1个)匹配的行

[root@localhost tmp]# cat test.txt
Tom is a good boy.
Alice is a good girl.
Kitty is a good girl.

 

a)将第一个包含girl的行中的单词Alice替换为Allen

[root@localhost tmp]# cat test.txt | sed "1,/girl/s/Alice/Allen/"
Tom is a good boy.
Allen is a good girl.
Kitty is a good girl.

 

b) 将第一个包含girl的行替换为Ken is a good boy

[root@localhost tmp]# cat test.txt | sed  "1,/girl/c\                 
> Ken is a good boy"
Ken is a good boy
Kitty is a good girl.

本例的结果并不正确,不知道为什么。还望高人指点。

 

热点排行