我对正则表达式和搜索模式非常糟糕,所以我真的不知道从哪里开始。
我需要<td id="latest_button">
在 test.txt 中查找并返回其后接下来的 50 个字符。它是针对 bash 脚本的,所以其他语言会很痛苦。
答案1
我通常使用 grep -o 来实现此目的:
grep -o '<td id="latest_button">..................................................'
或者使用扩展模式:
grep -E -o '<td id="latest_button">.{50}'
当然,您还可以获得标签本身。
答案2
我不知道像您尝试那样解析 html 是否是最好的主意,但无论如何,这有效,如果您有换行符,如果没有,您可以删除 tr 部分:
cat yourFile.html | tr -d '\n' | awk -F'<td id="latest_button">' '{print $2}' | cut -c -50
因此, tr 将去掉换行符,将所有内容视为一个行字符串。
awk -F 将分隔符设置为标签, print $2 ,打印分隔符后面的部分
cut -c -50 仅打印前 50 个字符