2011-04-06 24 views

回答

2

這是更好地使用awk

$ awk 'BEGIN{OFS=FS="="}{gsub(/ /,"_",$1)}1' file 
CC_MY_APPS=My aplications 
CC_MY_APPLICATION_SETTINGS_TITLE=My Settings 

或者,如果你有紅寶石(1.9+)

$ ruby -F"=" -ane '$F[0].gsub!(/\s+/,"_");puts $F.join("=")' file 
+0

在連接方法中使用'$ ;. inspect'可能更好,而不是硬編碼分隔符字符串。 – 2011-04-06 16:04:11

+0

謝謝你Kurumi,嘗試過你的ruby腳本並且工作正常... – 2011-04-06 19:44:06

0

一個Perl的方式來做到這一點,非常相似,胡桃在Ruby的解決方案:

perl -i.orig -F= -ane '$F[0]=~s/\s+/_/g;print join"=",@F' file.ini 

原始文件將被保存到file.ini.orig

+0

謝謝你M42,你的腳本也很棒;) – 2011-04-06 19:45:17

0

另外,如果你的價值觀不包含 '=',你可以嘗試:

perl -pi.bak -e 's/\s+(?=.*=)/_/g' file.ini 

使用預見。

相關問題