我嘗試用perl編寫一個簡單的東西,該文件穿過文件夾中的一堆文本文件並刪除每個不包含任何編號的行3000個不同的數字。刪除與大量短語中的任何短語相匹配的文本文件中的行
爲了得到它開始,我試圖
perl -ni.bak -e "print if /315879|315861|313956/" sometextfile.txt
能正常工作至今。現在的問題是,它不應該只測試三個數字,而應該測試大約3000個。當我把它們全部放在上面的正則表達式中時,它似乎在某個點之後被截斷,而不是每個數字都被搜索到。
我該如何解決這個問題?
雖然我們已經在它,我怎麼可以遍歷該文件夾中的所有* .txt文件?
'3000不同號碼',你正在使用一堆'|'。我認爲正則表達式的長度可能有一些限制。因此,您可能需要通過使用字符類來優化它,例如:'1 [1-8]'而不是'11 | 12 | 13 | 14 | 15 | 16 | 17 | 18'。 – HamZa
謝謝,好主意,我會繼續努力......數字當然有一些模式。 – Dirk
'grep -f numbers.txt * .txt'? – TLP