在文件中找到字符串后返回接下来的 50 个字符

在文件中找到字符串后返回接下来的 50 个字符

我对正则表达式和搜索模式非常糟糕,所以我真的不知道从哪里开始。

我需要<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 个字符

相关内容