我有一个包含以下内容的PO文件:
msgid "or"
msgstr "or-translation"
msgid "orand"
msgstr "orand-translation"
我需要获取给定msgid的翻译。使用命令“msggrep -K -e'rand'template2.pot”我得到'orand'的翻译,这没关系。
但是当我使用“msggrep -K -e”或“template2.pot”时,如果同时返回翻译('或'和'orand')。命令“msggrep -K -e'^或'template2.pot”按预期工作,返回两个翻译,但“msggrep -K -e'^或$'template2.pot”只是失败因为它不返回任何内容。好像'$'字符会破坏msggrep正则表达式解析器。
我尝试过使用其他msggrep标志(比如-F,-E ...)但是所有这些标志都从文件中读取测试模式,这对我的实际需求来说是不可接受的。我正在使用msggrep 0.14.6(我无法更新到更新的库)。
有人知道如何使用msggrep获取'orand'的翻译?
答案 0 :(得分:1)
您可以改为使用词尾检查:
msggrep -K -e 'or\b' template2.pot
确保'or'
后面有单词边界,因此它与'orand'
不匹配。