我試圖將某個.txt文件中的某些行移動到另一個.txt文件中。這些線都遵循一定的模式。我一直在尋找在批處理文件中使用find命令,但這並不會從原始文件中刪除該行。將行從一個.txt文件移動到另一個
例如:
find \i pattern "d:\example1.txt" >> "d:\example2.txt"
有什麼辦法來實現這一目標?
在此先感謝。
我試圖將某個.txt文件中的某些行移動到另一個.txt文件中。這些線都遵循一定的模式。我一直在尋找在批處理文件中使用find命令,但這並不會從原始文件中刪除該行。將行從一個.txt文件移動到另一個
例如:
find \i pattern "d:\example1.txt" >> "d:\example2.txt"
有什麼辦法來實現這一目標?
在此先感謝。
使用findstr
你可以打印不匹配行了。所以,你可以在幾個步驟做到這一點,psudocoded這樣的:
findstr pattern input > output
findstr /v pattern input > input-inverse
move /y input-inverse input
這應該離開你匹配輸出模式的所有線路,並沒有輸入那些線。
編輯:作出最後一步使用移動一個選項來覆蓋,所以沒有必要刪除輸入之前。我想我(主要是一個Linux的人)認爲「重命名」和「移動」是一回事,並且認爲這是被認爲是理所當然的。所以,謝謝你的提醒。
如何創建兩個文件,然後替換原來的?
find \i pattern "d:\example1.txt" >> "d:\example2.txt"
find \i antipattern "d:\example1.txt" >> "d:\example3.txt"
del example1.txt
ren example3.txt example1.txt
從文件中刪除行很難。通常,即使在真正的編程環境中,您也會在這裏使用額外的文件。
這裏有一個稍微不同的實現:
ren example1.txt source.txt
find \i pattern "d:\source.txt" >> "d:\example2.txt"
find \i antipattern "d:\source.txt" >> "d:\example1.txt"
del source.txt
對不起作爲一個完全的學究,但theres其中刪除 「輸入」 文件(1 BTW)2和3之間的臺階 – 2009-02-20 13:10:53
@Binary Worrier:實際上,在unix系統上,使用「mv」進行重命名,如果您在另一個現有文件的頂部「mv」現有文件,目標會自動替換,不需要刪除。 – 2009-02-20 13:16:46