我有一個文字檔案(實際上是 XML),我希望能夠使用命令列對其進行更改。換句話說,作為Windows 批次的一部分,我想找到一個字串(在本例中為@@@@,它使用檔案中其他任何位置都不存在的字元),然後將其替換為簡單的內容,例如日期“2011 年 8 月 18 日”。
是否有某種“grep”、“perl”或其他類型的方法可以快速替換字串——同樣,這必須透過命令列進行,因為我想自動化該過程。
順便說一下,我的 PC 上有 Active State PERL。
答案1
若要將文件中所有出現的 替換findthis
為:replaceto
example.txt
perl -pi -e 's/findthis/replaceto/g' example.txt
答案2
您已有的答案沒有任何問題,但為了添加選項,我將指出,如果您使用的是 Windows 7,則也安裝了 powershell。或者就此而言,如果您願意的話,它可以安裝在 XP/Vista 上。然後:
$foo = gc C:\Path\To\File.txt; $foo | %{$_.replace('@@@@', '8/1/11')} | Out-File C:\Path\To\File.txt
答案3
看來你了解 grep。您可能想使用相同的實用程式適用於 Windows。您不需要安裝它,只需將其放在路徑中(或與執行批次檔的相同資料夾中)。如果您使用它,請不要忘記下載「依賴項」以及二進位檔案(如果您喜歡的話,請下載安裝執行檔)。
或者,您可能想要使用 VBS 語言(Windows XP 的腳本語言)並建立腳本來替換檔案中的字串(請參閱此連結以了解詳細信息)並使用命令列從命令列運行腳本cscript