我需要使用Linux命令在两个标签之间提取HTML。
例如:一个html文档可以具有多个<h2>
标记,如下所示
<h2>
<a id="id1" name="name1"></a>
test1
</h2>
<h2>
<a id="id2" name="name2"></a>
test2
</h2>
我需要提取所有<h2>
的内部HTML作为数组,并作为参数传递给其他php脚本。
必填输出:
<a id="id1" name="name1"></a>
test1
<a id="id2" name="name2"></a>
test2
我在下面尝试过:
file='/var/www/html/docs/test/test.htm'
tagHtml=$(grep "<h2>" $file )
tagHtml=$(echo $metadata_tobe_added | sed 's/<h2>//g' | sed 's/<\/h2>//g')
echo $tagHtml
php /var/www/html/test.php "$tagHtml"
但是对我没有任何帮助。我希望我能够提出一个明确的问题。请帮助我。
更新:
我尝试过:
awk -F" *</?h2> *\n?" -v RS="^$" '{
for(i=2;i<=NF;i+=2)
printf "%s", $i
}' $file
我得到的输出低于正常值。
<a id="id1" name="name1"></a>
test1
<a id="id2" name="name2"></a>
test2
现在,我想将输出放入数组,以便可以将php脚本作为参数传递。
答案 0 :(得分:-1)
您可以尝试:
#!/bin/bash
while read line; do
case $line in
"<h2>") c=0
;;
"</h2>")c=1
;;
*) if [[ c -eq 0 ]]; then
echo $line
fi
;;
esac
done < $html_file
希望有帮助