簡體   English   中英

如何從bash中的字符串grep部分內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM