2013-12-15 55 views
-4
使用腳本在文本文件替換模式

我有以下文件中的文本:如何搜索和在Ubuntu

@XmlElement(namespace = "urn:ietf:params:xml:ns:icalendar-2.0", required = true) 

我要替換此:

@Namespace(reference="urn:ietf:params:xml:ns:icalendar-2.0") 
@Element(required = true) 

我想也取代所有的事件。

請建議如何在腳本中執行此操作以在多個文件上運行。

+0

你在Linux上嗎?你可以很容易地用'sed'命令在Linux shell中執行此操作。 –

+0

基本搜索/替換,SO和Python的問題。 sed,正則表達式,基本字符串操作。 –

回答

1

在Linux上,你可以做這樣的事情在shell:

sed 's/@XmlElement(namespace = \(".*"\), \(required = true\))/@Namespace(reference=\1)\[email protected](\2)/' files 

注意,files在年底將是你的文件的名稱或圖案,像*.txt。您可以在sed(在它們之間留出空格)之後添加-i以「就地」編輯文件,這意味着文件實際上將被編輯。你應該先備份文件,因爲這會改變它們。你也可以在-i之後加上一個擴展名,如-ibak,它應該創建每個文件的備份,其擴展名爲.bak,但要仔細檢查你的sed版本是否這樣做(即man sed-i)。