次の形式の C++ ソース コードで xgettext によって生成された .pot ファイルがあります。
#: file1.cpp:line
#: file2.cpp:line
msgid "" - empty string
#: file1.cpp:line
#: file2.cpp:line
msgid " \t\n\r" - string contains only spaces
#: file1.cpp:line
#: file2.cpp:line
msgid "real text"
次に、次のようなコマンドを使用します。
grep "#: " "$(POT_FILE)" | sed -e 's/^\(#: \)\(.*)/\2'
出力に含まれるファイル名と行のみを持つようにします。
しかし、問題は、スペースのみを含む文字列用のファイルは必要ないということです。
一連の行 #: blablabla のすぐ隣に msgid "" などの行を見つけなければならず、文字列の内容に応じて先行するすべての行をバイパスする必要があるため、非常に複雑です。
そのようなコマンドを手伝ってくれる人はいますか?
ありがとう!