我有一個名爲messages.properties
的文件,它具有語法爲<key>=<string>
的行。每個key
是唯一的,但是string
不是。許多密鑰可以有相同的字符串。同樣在同一個文件夾中,我有一些從messages.properties
讀取字符串的java類。他們通過方法Messages.getString("<key>")
獲得字符串。所以我需要做的是通過從messages.properties
讀取它們的值,將java類中的Messages.getString("<key>")
轉換爲"<key>"
。這是來自@potong的sed onliner可以做到的。sed腳本不能用於某些條目
sed 's|^\([^=]*\)=\(.*\)|[email protected]("\1")@"\2"@g|;s/\\/\\\\/g' messages.properties |
sed -i -f - *.java
但是這個問題是不會爲一些messages.properties
工作。我應該如何修改腳本來解決這個問題?這裏有一個相關的問題Search and replace with sed。
樣品messages.properties
Sting.1=Str
Sting.2=String
Sting.3=String
Sting.4=Strring
Sting.5=Str
示例Java類
System.Out.println(Messages.getString("Sting.1"));
System.Out.println(Messages.getString("Sting.2"));
System.Out.println(Messages.getString("Sting.3"));
System.Out.println(Messages.getString("Sting.4"));
System.Out.println(Messages.getString("Sting.5"));
Reqired Java類
System.Out.println("Str");
System.Out.println("String");
System.Out.println("String");
System.Out.println("Strring");
System.Out.println("Str");
請考慮更新您的問題與示例屬性文件有3個條目(或最低限度說明問題)和您的相同的數據所需的輸出。祝你好運。 – shellter 2012-04-05 03:32:35
@shellter我會添加它,但同時你可以檢查鏈接樣本。 – 2012-04-05 03:34:14
hm ... 2件事,在屬性示例中看不到VSDataSource.89或VSDataSource.90。 2.請向我們展示您獲得上述區塊的輸出。你是什麼意思'在messages.properties中重複'不起作用?我想我是說,看到確切的輸入,對於產生錯誤的相同輸入的確切和必需的輸出將是有幫助的。祝你好運。 –
shellter
2012-04-05 03:41:54