2011-05-07 116 views

回答

36
sed '/pattern/!d' file.txt 

但是你在這裏重新創造grep

+6

是的。但是sed擁有grep沒有的這個漂亮的地方標誌。 sed -i'/ pattern /!d'文件名稱 比 更容易grep'pattern'filename> filename.tmp && mv filename.tmp文件名 – Geeklab 2015-04-24 08:19:00

+0

警告:我提供了--quiet標誌以避免打印任何結果到終端,沒有意識到 - 我已經實現了它本身。這意味着所有的行都被刪除了,甚至是那些匹配模式的行。 – EriF89 2017-07-07 10:20:57

2

這可能會爲你工作:

sed -n '/matchingpattern/p' file.txt 

/.../是可以具有附着在這種情況下p行動的地址。

2

而不是使用sed,這是複雜的,使用grep。

grep matching_pattern file 

這應該會給你想要的結果。

+0

+1爲'正確的工具'。但sed可以修改文件。 – 2014-08-14 19:37:46

1

grep肯定更好......因爲它更快。

例如用grep提取我正在使用用於在數據組6號染色體的所有基因組序列數據:

$ time grep chr6 seq_file.in > temp.out 

real 0m11.902s 
user 0m9.564s 
sys 0m1.912s 

相比的sed:

$ time sed '/chr6/!d' seq_file.in > temp.out 

real 0m21.217s 
user 0m18.920s 
sys 0m1.860s 

我重複它每次3X和〜相同的值。