2011-01-12 77 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