2011-01-12 56 views
0

一个简单的问题,请sed的线 - 锻炼

我有这样的代码,并把它添加字回声的所有行,但我仅仅想奇数行

我kwow,该代码的sed - N + 1〜2P”显示我的所有奇数行,但我不能做同样的脚本

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

感谢

回答

1

因为,你想

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

这是略高于在这做事的N方式更好文字答案,你问(申请一个“s”行动,每隔一行)不会干扰您可能想要对文件中的其他行执行的其他操作。

1

其实相当简单上面:

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

N将第二行读入模式空间;替代品在第一个前面放置“回声”,隐式打印打印两行并清空模式空间。

请注意,如果您的行数为奇数,则会丢弃最后一行。解决这是读者的练习。

+0

和每隔3行?谢谢 – anvd 2011-01-12 03:42:23

+0

@费尔:你认为那样做会怎样?你可以从给出的答案中学习,并且以前答案的微小变化应该自动产生。 – 2011-01-12 03:46:39