awk [ 匹配后打印行 /word/ (不使用 getline )
Gawk [ Print Line After A Matching /word/ ( not using getline )
我是 gawk 的新手,我正在尝试使用 .po 文件制作一个翻译器。
这是 .po 文件中的示例
: quota_by_role.module:73
msgid "Quota deleted."
msgstr "Quota removida."
我想到了这个。它基本上打印了有匹配词的行的下一行。
awk -F'"' 'match(, /^word_to_translate$/) {printf "%s", ": ";getline; print }' translator.po translator2.po
结果会是
word_to_translate : something_in_other_language.
它工作正常,但我想知道是否有不使用“Getline”的替代方法。
使用grep
:
grep -A1 "matching-word" filename |grep -v "matching-word"
将打印具有 "matching-word".
的行的下一行
awk -F'"' '{ if (found){print;exit} }
~ /word-to-translate/{ found=1 }'
我是 gawk 的新手,我正在尝试使用 .po 文件制作一个翻译器。
这是 .po 文件中的示例
: quota_by_role.module:73
msgid "Quota deleted."
msgstr "Quota removida."
我想到了这个。它基本上打印了有匹配词的行的下一行。
awk -F'"' 'match(, /^word_to_translate$/) {printf "%s", ": ";getline; print }' translator.po translator2.po
结果会是
word_to_translate : something_in_other_language.
它工作正常,但我想知道是否有不使用“Getline”的替代方法。
使用grep
:
grep -A1 "matching-word" filename |grep -v "matching-word"
将打印具有 "matching-word".
的行的下一行awk -F'"' '{ if (found){print;exit} }
~ /word-to-translate/{ found=1 }'