regex - 如何使用bash脚本删除一行中两个HTML标签之间的字符串

标签 regex bash

我一直在研究一些简单的 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/

相关文章:

c# - Regex.Split() 奇怪的行为

python - 如何以不区分大小写的方式通过 Python 替换字符串中的多个单词?

linux - bash脚本,有多个脚本

linux - Linux 上的菜单和子菜单脚本

regex - 使用 RegEx 检查空格

python - 此文本在 python 中的正则表达式是什么

jquery - 如果 URL 包含 6 位数字,则将该值 append 到类中

python - 有没有办法为 bash 脚本提供 GUI?

bash - 如何记住哪个扩展 ${var%} ${var#} 从哪一端开始工作?

bash - 在powershell中使用mkdir创建多个子目录