我有以下方式的输入文件
<td> Name1 </td>
<td> <span class="test"><a href="url1">Link </a></span></td>
<td> Name2 </td>
<td> <span class="test"><a href="url2">Link </a></span></td>
我想要一个awk脚本来读取此文件并以下列方式输出
url1 Name1
url2 Name2
任何人都可以帮助我解决这个微不足道的问题吗?感谢。
答案 0 :(得分:2)
提取一个href是相对简单的,只要它们符合XHTML标准并且一行中最多只有一个并且你不关心封闭标签,但perl更容易:
$ perl -ne 'print "$1\n" if /href="([^"]+)"/'
如果您关心封装标签或它们不符合标准,则无法使用正则表达式来解析HTML。这是不可能的。
添加:oops,你关心上下文,忘记regexp并使用真正的HTML解析器
答案 1 :(得分:1)
这是一个完成工作的awk脚本
awk '
/a href=\".*\"/ { sub( /^.*a href=\"/,"" ); sub(/\".*/,""); print $0, name }
{ name = $2 }
'
答案 2 :(得分:0)
这可能有效:
awk 'BEGIN
{i=1}{line[i++]=$0}
END
{
j=1;
while (j<i)
{print line[j+1] line[j]; j+=2}
}' yourfile|awk '{print substr($4,7,length($4)-6),$6}'
答案 3 :(得分:0)
答案 4 :(得分:0)
awk 'BEGIN{RS="></td>\n"; FS="> | </|\""}{print $7, $2}' infile
每2行作为记录。