我有一个项目要求,需要在搜索特定文本后打印文本的下一个字符。
为了更好地理解,这里有一个例子。
我有一个index.html
文件并希望在搜索文本后打印特定文本。
问题:我有短信 <b>WELCOME</b>
在index.html
。现在我想搜索<b>
,打印文本WELCOME
直到</b>
.
bash# cat index.html | grep "" ??
请帮助我在 Linux 中使用 shell 命令或 shell 脚本打印此内容。
最佳答案
以快速而肮脏的方式打印当前页面标题的示例:
wget -q -O - 'http://tinyurl.com/9n6wayk' |
sed -n '/<title>/{s:<title>\(.*\)</title>:\1:;p;q;}'
sed 命令详细说明:
-n
选项仅显示匹配的行- 开头的
//
部分就像一个grep
:我们使用匹配的行 {}
用于包含命令s:::
是替换(分隔符可以是任意字符,默认为/
)\(.*\)
正在捕获- \1 是捕获的字符串
p
是用来打印修改后的字符串q
匹配该行后立即退出
更简洁的方法是使用 Xpath使用第三代语言,如 Python、Ruby 或 Perl。
在当前 stackoverflow 页面上的 shell 中使用 Xpath 的简单方法:
xmllint 2>/dev/null --html \
--xpath '/html/head/title/text()' \
http://tinyurl.com/9n6wayk
xmllint
是 libxml 的一部分
关于html - 如何搜索特定文本并回显该特定文本的下一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12655297/