2013-12-11 56 views
2

我需要使用sed從文件中只刪除包含給定單詞的行。但是如果我的文件有50行,我只需要看前30行。如何在包含匹配詞的文件中刪除給定間隔的行?

我知道:

sed '1,30d' f.txt 

將刪除文件的前30行。

和:

sed '/Text/d' f.txt 

將刪除包含匹配的詞「文本」的文件中的所有行。

我該如何結合這兩個來解決我的問題? 謝謝。

回答

3

看來您要刪除文件中前30行內包含Text的行。

你可以說:

sed '1,30{/Text/d}' f.txt 

如果你想刪除第30行Text線在文件的任何地方,你可以說:

sed '1,30d;/Text/d' f.txt 
+0

謝謝你,你是對的,我忘了{} – Steffi

1

您錯過了「-i」選項:

sed -i '1,30{/Text/d}' f.txt 
1
sed "/Text/ d;30 q" f.txt 

應該會更快,尤其是在巨大的文件IF你30後丟棄行如果沒有以前的解決方案是最好的

相關問題