Xml RegEx search&;替换&;折叠,但仅在某些行中
我有一个XML文件,其中的行如下:Xml RegEx search&;替换&;折叠,但仅在某些行中,xml,regex,sed,Xml,Regex,Sed,我有一个XML文件,其中的行如下: <key>a_acute</key> <string>a_acute.glif</string> <key>Aacute</key> <string>a_acute.glif</string> a\u a_.glif 我需要把它变成这样: <key>a_acute</key> <string>a_acute.glif<
<key>a_acute</key>
<string>a_acute.glif</string>
<key>Aacute</key>
<string>a_acute.glif</string>
a\u
a_.glif
我需要把它变成这样:
<key>a_acute</key>
<string>a_acute.glif</string>
<key>Aacute</key>
<string>a_acute.glif</string>
Aacute
a_.glif
即,将后跟下划线的字母替换为大写字母(省去下划线),但仅限于以
开头的行。这就是我到目前为止所做的:
sed '/^<key/s/\(.\)_/\1/'
sed'/^
作为一般规则:不要使用正则表达式来解析像XML这样的非正则语言
\U
是GNU sed的一项功能,默认情况下在Mac OS X上不可用。您可以从asGNU sed
或asgsed
安装它
如果您不想依赖外部工具,可以像这样使用perl(使用-i
将文件更改到位):
perl-i-pe的/(?)?