Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25158
  • 博文数量: 9
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 115
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-27 19:18
文章分类
文章存档

2008年(9)

我的朋友

分类: LINUX

2008-08-27 19:38:01

例如:

sed -n '/e$/ s/^/i love you/p' 11


sed '/e$/ s/^/i love you/' 11


sed '/^one/ s/$/i love you/' 11

sed '1,2 s/^/i love you/' 11

sed '/two/ !d' sample_one

sed '$a\
> This is where we stop\
> the test' sample_one





如果您有一个文件包含一系列项目,并且想对文件中的每个项目执行一个操作,那么首先对那些项目进行一次智能扫描并考虑将要做什么是很重要的。为了使事情变得更简单,您可以将 sed 与任意迭代例程(for、while、until)结合来实现这一目的。

比如说,假定您有一个名为 "animals" 的文件,其中包含以下项目:

pig
horse
elephant
cow
dog
cat

您希望运行以下例程:


#mcd.ksh
for I in $*
do
echo Old McDonald had a $I
echo E-I, E-I-O
done

结果将为,每一行都显示在 "Old McDonald has a" 的末尾。虽然对于这些项目的大部分这是正确的,但对于 "elephant" 项目,它有语法错误,因为结果应当为 "an elephant" 而不是 "a elephant"。利用 sed,您可以在来自 shell 文件的输出中检查这种语法错误,并通过首先创建一个命令文件来即时地更正它们:


#sublist
/ a a/ s/ a / an /
/ a e/ s/ a / an /
/a i/ s / a / an /
/a o/ s/ a / an /
/a u/ s/ a / an /

然后执行以下过程:


$ sh mcd.ksh 'cat animals' | sed -f sublist



for i in $*       --->不能够有"" 或''  例如 "1 2 3"   '1  2  3 '  只能1 2 3
阅读(1211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~