4
這是一個衆所周知的任務,簡單來形容:grep基於黑名單 - 沒有程序代碼?
給定一個文本文件foo.txt的,和排除字符串,每行一個黑名單文件,產生具有foo.txt的只有線foo_filtered.txt不包含任何排除字符串。
常見的應用程序從生成日誌過濾編譯器警告,但忽略對不屬於自己的文件警告。文件foo.txt是警告文件(它自己從構建日誌中過濾)以及帶有文件名的黑名單文件excluded_filenames.txt,每行一個。
我知道它是如何在像Perl或AWK程序語言做的,我甚至對Linux的組合做它的命令,如剪切,通訊和排序。
但我覺得,我應該非常接近與xargs的,只是看不到最後一步。
我知道,如果excluded_filenames.txt只有1個在它的文件名,然後
grep -v foo.txt `cat excluded_filenames.txt`
將做到這一點。
而且我知道,我可以得到一個文件名,每行有
xargs -L1 -a excluded_filenames.txt
那麼,如何在程序語言結合這兩個成一個單一的解決方案,沒有明確的循環?
尋找簡單而優雅的解決方案。
謝謝! grep比我意識到的更加強大。我想我應該看它的手冊頁第一... – talkaboutquality
我認爲你的回答是輕微不正確,則'cat'在第二個例子中不應該有,線應該是'grep的室顫excluded_filenames.txt FOO。 txt',同時使用'-f'也是明智的選擇,以避免匹配任何字符。 – Hasturkun
@Hasturkun,我不這麼認爲,'excluded_filenames.txt'不是要搜索的文本,它是一個包含模式列表的文件。 –