脚本中的sed行 - 练习

时间:2011-01-12 03:30:29

标签: linux shell sed

一个简单的问题,请

我有这个代码,它为所有行添加单词echo,但我只想要奇数行

我知道这个代码sed -n 1~2p'显示所有奇数行,但我不能在上面的脚本中做同样的事情

sed 's/.*/echo &/' $startdirectory

感谢

2 个答案:

答案 0 :(得分:1)

其实很简单:

sed -e 'N;s/^/echo /'

N读取第二行进入模式空间;替代品将'echo'放在第一个之前,隐式打印打印两行并清空模式空间。

请注意,如果您有奇数行,则会删除最后一行。修复这是读者的练习。

答案 1 :(得分:1)

对于你所要求的字面答案(对所有其他行应用's'动作),你想要

sed -e '1~2s/.*/echo &/'

这比N做事方式稍微好一些,因为它不会干扰你可能想对文件中的其他行做的其他事情。