我在文件中有以下文字:
<img id="img_1" style="display: none" src="Logs/P2P2014-04-10_14-24-49.txt"/></span></div></div><script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>1m31.846s seconds</strong>";</script><script type="text/javascript">document.getElementById('totals').innerHTML = "1
我想要做的是获取src之后的内容,即Logs/P2P2014-04-10_14-24-49.txt
。我尝试了以下内容并将其放入ruby中的变量中:
我尝试过:
text = `grep 'Logs\/.*txt\"'`
但这会返回整个该死的行,而不仅仅是文本。我该如何完成这项工作?
答案 0 :(得分:1)
使用Nokogiri
,了解解决问题的难易程度:
require 'nokogiri'
doc = Nokogiri::HTML.parse <<-html
<img id="img_1" style="display: none" src="Logs/P2P2014-04-10_14-24-49.txt"/></span></div></div>
html
doc.at('#img_1')['src'] # => "Logs/P2P2014-04-10_14-24-49.txt"
阅读tutorials以了解和学习Nokogiri。
答案 1 :(得分:1)
尝试使用
text=$(grep -o 'Logs\/.*txt\"')
它应该仅返回该行的匹配部分。
答案 2 :(得分:0)
使用sed
sed -n 's/.*src="\([^"]*\)".*/\1/p' file
如果支持-P选项
,则使用gnu grepgrep -Po '(?<=src=")[^"]*' file