我有一个大的语言.ini文件,其行如下所示:
CC MY APPS=My aplications
CC MY APPLICATION SETTINGS TITLE=My Settings
我需要删除CC和=之间的所有空格,并用下面的下划线替换:
CC_MY_APPS=My aplications
CC_APPLICATION_SETTINGS_TITLE=My Settings
答案 0 :(得分:2)
最好使用awk
$ awk 'BEGIN{OFS=FS="="}{gsub(/ /,"_",$1)}1' file
CC_MY_APPS=My aplications
CC_MY_APPLICATION_SETTINGS_TITLE=My Settings
或者如果你有Ruby(1.9 +)
$ ruby -F"=" -ane '$F[0].gsub!(/\s+/,"_");puts $F.join("=")' file
答案 1 :(得分:0)
一种perl方式,非常类似于kurumi在Ruby中的解决方案:
perl -i.orig -F= -ane '$F[0]=~s/\s+/_/g;print join"=",@F' file.ini
原始文件将保存到file.ini.orig
答案 2 :(得分:0)
或者,如果您的值不包含'=',则可以尝试:
perl -pi.bak -e 's/\s+(?=.*=)/_/g' file.ini
使用前瞻。