Я пытаюсь найти строку «отсутствует» в файле, содержащем следующее:
<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>
И если «отсутствует», я хочу заменить строку ее непосредственным именем источника,Например, это:
<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>
Я смог использовать 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 "'" }
И затем сохранить его как something.awk
.это с помощью:
awk -f something.awk filelocation
Но я не уверен, как заменить строку «отсутствует» значением из источника.
Может кто-нибудь подсказать, как мне его заменить?