2012-08-23 70 views
0

我必須編寫一個批處理文件來搜索文件中的特定行,並將其替換爲文件名。批處理命令替換特定的文本

具體而言,一個文件:

data 
data 
data 
ABCD xyz <- this is the line that i have to replace. abcd always the same xyz always different 
data 
data 

我想XYZ值更改爲文件名不帶擴展名。所以如果文件是blabla.tpo那麼文件看起來像:

data 
data 
ABCD blabla 
data 
.... 

我希望你們能幫助我。我不是程序員,這些是3d文件,我有1000個。我已經用各種方式搜索,寫了數百個非工作批處理文件。試過FAR,記事本++和誰知道沒有成功還有多少。如果程序能做到這一點,那麼我有一個打開文件中的一個,或者如果你有它,它不能插入文件名,只有完全匹配的字符串...

+0

[查找字符串並替換批處理文件中的特定字母]的可能的重複(http://stackoverflow.com/questions/17085650/find-a-string-and-replace-specific-letters-in-batch-file ) –

+0

它是[如何找到並替換使用Windows命令行環境的文件中的文本?](http://stackoverflow.com/questions/60034/)引用主題中的某些工具甚至可以運行多個文件。當然,還有文本編輯器支持在目錄樹的所有文件中進行替換。 – Mofi

回答

0

嘗試的Perl:

perl -ne 'if (/^(ABCD).*$/) { print "$1blabla\n"; } else { print $_; }' inputfile.txt 

殼本身對於這類任務並不是非常好。您可以逐行閱讀(例如,通過Bash中的read),但替換邏輯並不像Perl那樣精緻或強大。

+0

感謝您的回答。這顆珍珠可以批量做這個嗎?我的意思是有一個文件夾有100個文件,每個文件都必須以此方法爲基礎。 –

+0

@VicziánSándor:當然:'因爲我在*;做perl ... $ i> $ i.output;完成「等等。Windows外殼具有類似的結構。 –