如何使用 grep 或 sed 提取同一行中的多个匹配项

如何使用 grep 或 sed 提取同一行中的多个匹配项

我有一个文件,其中包含如下文本:

<TR><TD>5</TD><TD>Ukraine</TD></TR>
<TR><TD>3</TD><TD>Vietnam</TD></TR>
<TR><TD>3</TD><TD>Taiwan</TD></TR>
<TR><TD>3</TD><TD>Netherlands</TD></TR>
<TR><TD>3</TD><TD>South Korea</TD></TR>
<TR><TD>3</TD><TD>Great Britain</TD></TR>

我只想提取<TD>元素之间的信息:

5 Ukraine
3 Vietnam
3 Taiwan
3 Netherlands
... 

答案1

检查这个

$awk -F"[>|<]" '{print $5,$9}' input.txt
5 Ukraine
3 Vietnam
3 Taiwan
3 Netherlands
3 South Korea
3 Great Britain

使用 sed 命令

$ sed "s#<TR><TD>\(.\)</TD><TD>\(.*\)</TD></TR>#\1 \2#" input.txt
5 Ukraine
3 Vietnam
3 Taiwan
3 Netherlands
3 South Korea
3 Great Britain

相关内容