我最近一直在研究一些简单的 bash
脚本,它解析网页中的特定数据。我已经使用 tr '\r\n' ' ' <file1.txt >file2.txt
来确保,从页面中提取的所有数据都存储在 file1.txt
的一行中。那么我需要匹配这一行中 <th>...</th>
标签之间的所有字符串并删除它们或替换为 ' '
符号。
所以这里是一些示例代码:
<td>Abaktal hm</td> </tr> <tr> <th>Package</th> <td>flm 10x400 mg</td> <th>Indesit</th>
我使用过
sed
并尝试过类似的东西 sed -i 's/\<th\>.*?\<\/th\>/ /g' output.txt
但它没有用。我认为问题出在
?
符号上。它适用于正则表达式中的 ?
符号,但可能不适用于 bash
。 最佳答案
虽然我同意 sputnick 和其他人的观点,但对您直接提出的问题的答案是:
sed -ir 's/<th>[^<]+<\/th>//g'
这适用于您的样本数据就好了。
关于regex - 如何使用bash脚本删除一行中两个HTML标签之间的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12962875/