2014-07-24 46 views
0

我有一個文件中的所有替換命令說replace.sed,我用它與sef的-f標誌 ​​。但現在我遇到了一種情況,我需要將這些替換規則僅應用於給定輸入文件的偶數行(即僅在行號2,4,6等)上。我不能在replace.sed中放置任何條件語句文件也是由其他腳本使用的。塞德只替換文件的偶數行時替換命令寫入文件

+0

輸入和輸出的一個例子文字將有助於 – Jotne

回答

5

-f file的作用就像一個包括(它腳本文件的內容添加到要被執行的命令),因此可以把它的內容的一組命令的內部:

sed -e '2~2{' -f replace.sed -e '}' 
+0

感謝您的快速回復。它工作完美! – Abhishek

0

您可以使用awk這樣的:

awk 'NR%2==0 {do some with lines here}' file 

然後它會改變一些上線2,4,6 ....

EKS

awk 'NR%2==0 {sub(/old/,"new"}1' file 

這將替換詞oldnew聯機2,4,6 ...然後打印所有行(已更改且未更改)