我有一個很長的命令文件。 使用Notepad ++或regex,我想刪除全部包含「help」的行,包括keyboard_help等。 正則表達式
如何才能作到這一點? 編輯器
在Notepad ++中執行此操做的另外一種方法是在「查找/替換」對話框中使用正則表達式: 工具
按Ctrl + h以顯示查找替換對話框。 spa
在Find what:
文本框中包含正則表達式: .*help.*\\r?\\n
(其中\\r
.*help.*\\r?\\n
是可選的,以防文件沒有Windows行結尾)。 命令行
將Replace with:
文本框保留爲空。 日誌
確保選中「搜索模式」區域中的「正則表達式」單選按鈕。 而後單擊Replace All
瞧! 包含搜索字詞help
全部行都已刪除。 code
若是您使用的是Windows ,請嘗試使用findstr
。 不須要第三方工具: 內存
findstr /V /L "searchstring" inputfile.txt > outputfile.txt
它也支持正則表達式! 只需閱讀該工具的幫助findstr /?
。 input
PS若是你想處理龐大的文件(好比400 MB的日誌文件),文本編輯器的內存效率就不高,所以,正若有人已經指出的那樣,命令行工具是可行的方法。 但Windows上沒有grep,因此...... string
我只是在1 GB的日誌文件上運行它,它花了3秒鐘。
使用正則表達式搜索:
^.*(help).*$
使用grep
輕鬆完成任務:
grep -v help filename
追加> newFileName
將輸出重定向到新文件。
爲了澄清它,正常的行爲是在屏幕上打印線條。 要將其傳輸到文件,能夠使用>
。 所以,在此命令中:
grep -v help filename > newFileName
grep
調用grep
程序 -v
是反轉輸出的標誌。 經過defaulf, grep
打印出與給定模式匹配的行。 使用此標誌,它將打印與模式不匹配的行。 help
是匹配的模式 filename
是輸入文件的名稱 >
將輸出重定向到如下項目 newFileName
保存輸出的新文件。 您可能已經注意到,您不會刪除文件中的內容。 grep
將讀取它,另外一個文件將被保存,相應地進行修改。
您能夠使用sed: sed '/help/ d' < inputFile > outputFile
來完成此操做