Linux 如何在包含匹配单词的文件中删除给定间隔的行?
我需要使用sed从文件中只删除包含给定单词的行。但是如果我的文件有50行,我只需要看前30行 我知道:Linux 如何在包含匹配单词的文件中删除给定间隔的行?,linux,bash,sed,Linux,Bash,Sed,我需要使用sed从文件中只删除包含给定单词的行。但是如果我的文件有50行,我只需要看前30行 我知道: sed '1,30d' f.txt 将删除文件的前30行 以及: 将删除文件中包含匹配单词“Text”的所有行 我如何结合这两种方法来解决我的问题? 谢谢。您似乎想删除文件前30行中包含文本的行 你可以说: sed '1,30{/Text/d}' f.txt 如果要删除文件中任何位置的前30行和包含文本的行,可以说: sed '1,30d;/Text/d' f.txt 您错过了“-i”
sed '1,30d' f.txt
将删除文件的前30行
以及:
将删除文件中包含匹配单词“Text”的所有行
我如何结合这两种方法来解决我的问题?
谢谢。您似乎想删除文件前30行中包含
文本的行
你可以说:
sed '1,30{/Text/d}' f.txt
如果要删除文件中任何位置的前30行和包含文本的行,可以说:
sed '1,30d;/Text/d' f.txt
您错过了“-i”选项:
应该更快,尤其是在大文件上,如果在30后丢弃行。如果不是,以前的解决方案是最好的
sed '1,30d;/Text/d' f.txt
sed -i '1,30{/Text/d}' f.txt
sed "/Text/ d;30 q" f.txt