[英]how to grep part of the content from a string in bash
例如,當過濾html文件時,如果每一行都是這種模式:
<a href="xxxxxx" style="xxxx"><i>some text</i></a>
如何獲取href
的內容,以及如何獲取<i>
和</i>
之間的文本?
貓文件| 切-f2 -d \\“
僅供參考:Stackoverflow上幾乎所有其他HTML / regexp帖子都解釋了為什么使用HTML解析以外的任何其他方法從HTML獲取值是一個壞主意。 您可能需要閱讀其中一些內容。 以這個為例。
如果href始終是a,ine中用空格隔開的第二個標記,那么您可以嘗試
grep“ href”文件| 切-d''-f2 | 切-d'='-f2
這是使用xmlstarlet(可選地使用tidy)進行操作的方法:
# extract content of href and <i>...</i>
echo '<a href="xxxxxx" style="xxxx"><i>some text</i></a>' |
xmlstarlet sel -T -t -m "//a" -v @href -n -v i -n
# using tidy & xmlstarlet
echo '<a href="xxxxxx" style="xxxx"><i>some text</i></a>' |
tidy -q -c -wrap 0 -numeric -asxml -utf8 --merge-divs yes --merge-spans yes 2>/dev/null |
xmlstarlet sel -N x="http://www.w3.org/1999/xhtml" -T -t -m "//x:a" -v @href -n -v . -n
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.