我在同一行中有两对标签,我想分别在它们之间获取字符串。
echo 'the <key>text</key> between the two "<key>pairs</key>" and so on' | grep -o '<key>.*</key>'
返回两对之间的文字,但我的目标是获取文字&#39;和&#39;对&#39;仅返回
感谢指示
gawk -v RS='</?key>' 'RT=="</key>"'
完成工作
答案 0 :(得分:2)
使用GNU awk进行多字符RS:
$ echo 'the <key>text</key> between the two "<key>pairs</key>" and so on' |
gawk -v RS='</?key>' '!(NR%2)'
text
pairs