Bash 如何编写一个脚本,使用正则表达式只输出http://example.com 网站

Bash 如何编写一个脚本,使用正则表达式只输出http://example.com 网站,bash,curl,awk,grep,Bash,Curl,Awk,Grep,我是一名脚本初学者,我正在为我的工作编写bash脚本 对于此任务,我尝试了sed命令,但该命令不起作用。对于您的问题,以下命令将起作用: #!/bin.bash curl -s http://example.com/ | grep -P "\s*\<h1\>.*\<\/h1\>" |sed -n 's:.*<h1>\(.*\)</h1>.*:\1:p' curl -s http://example.com/ | grep -P "\s*\<p

我是一名脚本初学者,我正在为我的工作编写bash脚本


对于此任务,我尝试了sed命令,但该命令不起作用。对于您的问题,以下命令将起作用:

#!/bin.bash
curl -s http://example.com/ | grep -P "\s*\<h1\>.*\<\/h1\>" |sed -n 's:.*<h1>\(.*\)</h1>.*:\1:p'
curl -s http://example.com/ | grep -P "\s*\<p\>.*\<\/p\>" |sed -n 's:.*<p>\(.*\)</p>.*:\1:p'

对于您的问题,以下方法可行:

#!/bin.bash
curl -s http://example.com/ | grep -P "\s*\<h1\>.*\<\/h1\>" |sed -n 's:.*<h1>\(.*\)</h1>.*:\1:p'
curl -s http://example.com/ | grep -P "\s*\<p\>.*\<\/p\>" |sed -n 's:.*<p>\(.*\)</p>.*:\1:p'

您可以使用以下一个衬里:

curl -s http://example.com/ | sed -n '2,$p'  > /tmp/tempfile  && cat /tmp/tempfile | xmllint --xpath '/html/head/title/text()' - &&  echo ; cat /tmp/tempfile | xmllint --xpath '/html/body/div/p/text()' -

这使用xmllint的xpath命令来提取
标记中的文本

您可以使用以下一种衬里:

curl -s http://example.com/ | sed -n '2,$p'  > /tmp/tempfile  && cat /tmp/tempfile | xmllint --xpath '/html/head/title/text()' - &&  echo ; cat /tmp/tempfile | xmllint --xpath '/html/body/div/p/text()' -

这使用xmllint的xpath命令来提取
标记中的文本

欢迎来到SO,正如dash-o在上述评论中已经提到的那样;请务必在问题中添加3个简单的内容。第一个是输入样本,第二个是输出样本,第三个是你为解决自己的问题所付出的努力。还要检查的搜索功能,所以这是一个伟大的工具来搜索/寻找问题太多,如果这是一个基本的问题,我很肯定你会得到答案本身,干杯。顺便说一句,我投票结束这个问题,直到我看到你在你的帖子中添加了提到的细节,仅供参考。欢迎这么做,正如dash-o在上述评论中已经提到的那样;请务必在问题中添加3个简单的内容。第一个是输入样本,第二个是输出样本,第三个是你为解决自己的问题所付出的努力。还要检查的搜索功能,所以这是一个伟大的工具来搜索/寻找问题太多,如果这是一个基本的问题,我很肯定你会得到答案本身,干杯。顺便说一句,我投票决定结束这个问题,直到我看到你在你的帖子中添加了提到的细节,仅供参考。很抱歉输入错误,是在工作中匆忙完成的。注意到你的建议了,泰。很抱歉,打字错误,是在工作的时候匆忙做的。注意到你的建议了,泰。