我剛開始學習Perl,我的主要目標是替換文本行。假設我有以下文本文件;Perl - 用不同的匹配替換txt文件中的行
manufacturer=BMW
manufacturer=Honda
manufacturer=Mercedes
manufacturer=Toyota
manufacturer=Noble
manufacturer=Maserati
manufacturer=Jaguar
manufacturer=Ford
我想要替換所有行,以便文本文件看起來像這樣;
manufacturer=XXX
manufacturer=XXX
manufacturer=XXX
manufacturer=XXX
manufacturer=XXX
manufacturer=XXX
manufacturer=XXX
manufacturer=XXX
我已經學會了如何更換線,特殊情況如下匹配與我預期的文本文字;
s/BMW/XXX/ig
但考慮到在這個文件中我有不同的情況,我不想繼續更新與不同製造商(本田,奔馳,豐田)每次,然後重新運行代碼的Perl代碼。當然,必須有一個方式,我可以簡單地用開頭的行搜索(無需擔心製造商)
manufacturer=*whatever*
,然後用
manufacturer=XXX
更換整條生產線可有人請一些線索怎麼去做這件事?
如果您想要更改* all *行,您可以在文件中簡單地每行打印一次'manufacturer = XXX'。即'perl -lne'print「製造商= XXX」'輸入>輸出' – TLP
謝謝TLP。這會覆蓋現有文件中'manufacturer = XXX'的每一行嗎? – Triple777er
它將爲文件中的每一行寫入一行文件到一個新文件。我不推薦覆蓋新手,但可以用'-i'標誌來完成。請記住,變化是不可逆轉的。 – TLP