例如:
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
阅读(1222) | 评论(0) | 转发(0) |