我试图在包含以下内容的文件中搜索字符串"missing":
<message>
<source>TypeA</source>
<translation>missing</translation>
</message>
<message>
<source>TypeB</source>
<translation>missing</translation>
</message>
<message>
<source>TypeC</source>
<comment>Context menu</comment>
<translation>missing</translation>
</message>
Run Code Online (Sandbox Code Playgroud)
如果找到"缺失",我想用它的直接源名称替换字符串.例如:
<message>
<source>TypeA</source>
<translation>TypeA</translation>
</message>
<message>
<source>TypeB</source>
<translation>TypeB</translation>
</message>
<message>
<source>TypeC</source>
<comment>Context menu</comment>
<translation>TypeC</translation>
</message>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我能够使用awk搜索字符串并打印直接源名称:
match($0, /<source>(.*)<\/source>/,n){ src=n[1] }
match($0, /<translation>(.*)<\/translation>/,s){ trs=s[1] }
/unfinished/{ print "Translation missing or incomplete for: '" trs "'","located inside source named: '" src "'" }
Run Code Online (Sandbox Code Playgroud)
然后将其保存为something.awk使用以下方式调用:
awk -f something.awk filelocation
Run Code Online (Sandbox Code Playgroud)
但我不知道如何用源中的值替换字符串"missing".
任何人都可以建议我如何更换它?