我需要使用sed从文件中仅删除包含给定单词的行。但是如果我的文件有50行,我只需要查看前30行。
我知道:
sed '1,30d' f.txt
将删除文件的前30行。
和
sed '/Text/d' f.txt
将删除包含匹配单词“Text”的文件中的所有行。
如何将这两者结合起来解决我的问题? 谢谢。
答案 0 :(得分:3)
您似乎想删除文件中前30行中包含Text
的行。
你可以说:
sed '1,30{/Text/d}' f.txt
如果您要删除文件中任意位置的前30行和包含Text
的行,您可以说:
sed '1,30d;/Text/d' f.txt
答案 1 :(得分:1)
你错过了“-i”选项:
sed -i '1,30{/Text/d}' f.txt
答案 2 :(得分:1)
sed "/Text/ d;30 q" f.txt
应该更快,特别是在巨大的文件 IF 你丢弃30后的行。如果不是以前的解决方案是最好的