我的 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 "" 或类似的行,并根据字符串的内容绕过所有前面的行。
任何人都可以帮助执行这样的命令吗?
谢谢!