我需要在文本文件中查找字符串,刪除包含它的行並保存文件。該字符串被找到(讀取)另一個文本文件,其中包含數百個不同的字符串,每行一個。該過程將從文件中的第一個字符串開始。SED或其他編輯器 - 從Windows上的文件中刪除字符串
推薦使用任何(希望易用的)文本編輯器(在Windows操作系統上)?完成任務。
我沒有進入嚴肅的日常編輯。所以如果能夠通過易於使用但仍然可靠的編輯器完成任務,我會非常高興。
多謝, 弗蘭克
我需要在文本文件中查找字符串,刪除包含它的行並保存文件。該字符串被找到(讀取)另一個文本文件,其中包含數百個不同的字符串,每行一個。該過程將從文件中的第一個字符串開始。SED或其他編輯器 - 從Windows上的文件中刪除字符串
推薦使用任何(希望易用的)文本編輯器(在Windows操作系統上)?完成任務。
我沒有進入嚴肅的日常編輯。所以如果能夠通過易於使用但仍然可靠的編輯器完成任務,我會非常高興。
多謝, 弗蘭克
在Unix/Linux/Cygwin的:
grep -v -f pattern_file unmodified_file > new_file
移除包含在從unmodified_file pattern_file圖案的所有行,寫入NEW_FILE。
grep -v
輸出行不符合任何模式。 -f
從文件讀取模式。
在Windows上出現等同於在命令提示符下運行以下命令:
FINDSTR /V /G:pattern_file unmodified_file > new_file
就是這樣。如果你已經有了兩個源文件,這是一個單線程。
pattern_file
將是空白和區分大小寫的,除非你深入到其他的選擇,這是與FINDSTR /?
您可以嘗試記事本+ +,因爲它有很多的插件,也有很大的搜索算法。我做了一個類似的任務,我不得不做很多搜索/替換的東西,並使用我從互聯網上挖出的插件,無法準確記住名稱(嘗試google-ing我認爲它是notepad ++的replaacc或類似的東西)。
你好BlueBrewBerry描述,感謝您的提示。 – frank
使用的sed:
sed -n '/PATTERN/n;p' FILE > FILE.new # then copy FILE.new to FILE
告訴sed默認(-n
)不能輸出任何東西,發現模式(/PATTERN/
),如果發現(n
)跳過此行,否則打印線(;p
)。如果你有GNU sed
你可以叫
sed -i -n '/PATTERN/n;p' FILE`
自動文件更新,由於(-i /--in-place
)。
你好,我要去嘗試stevesliva的第一個,因爲它避免了安裝SED的Winders版本。但是,嘿,無論如何,誰知道。 – frank
您好stevesliva,謝謝。我會嘗試Windows,然後回來,告訴它是如何實現的。 – frank
再次問好,按照您的建議嘗試,Yahoo!它首先成功了。做了一些檢查,到目前爲止在新創建的'new_file'中沒有發現任何故障。我'知道'必須有辦法做到這一點w Winders,需要找到合適的人提供正確的建議。整潔乾淨。非常感謝stevesliva! – frank
@frank我提到'grep'的實現主要是因爲這對於那些每天都會用代碼破壞文本的人來說是正則的,但是確實如此,它完全映射到DOS命令。如果您接受答案(綠色選中標記),我將不勝感激。謝謝! – stevesliva