0
第1期:我的代碼工作只有grep的採取恆定的模式是這樣的:在巨大的html文件中選擇兩個patern之間的文本?
echo "$s" | grep -oP '(?<=class="A3">).*(?=</a>)'
第二個問題:一個變量不是工作壓力太大
這裏分配輸出是我的腳本:
#!/bin/sh
filename="data.txt"
Ptr_ValidChannel="><a title=\"Id: "
Ptr_ChannelNameStart="<class=\"A3\">"
Ptr_ChannelNameEnd="</a>"
while read -r line
do
case "$line" in
# working 100%
#*$Ptr_ValidChannel*) echo "$line" | grep -oP '(?<=class="A3">).*?(?=</a>)' ;;
# not working
#*$Ptr_ValidChannel*) echo $line | grep -oP '(?<=$Ptr_ChannelNameStart).*?(?=$Ptr_ChannelNameEnd)' ;;
# not working
*$Ptr_ValidChannel*) myvar=$(echo $line | grep -oP '(?<=$Ptr_ChannelNameStart).*?(?=$Ptr_ChannelNameEnd)') ;;
esac
done < "$filename"
echo $var_name
exit
爲了簡化data.txt的內容:
<TD WIDTH="15%"><a title="Id: I24 NEWS" class="A3">I24 News Français</a><br /><font color="#555555"> <a title="Sporadic or full 16/9 transmission"><img src="/169.gif"></a>
在我的系統命令:
ls -la /bin/sh
輸出爲:
/bin/sh -> dash
最誠摯的問候。
PS。沒有BASH代碼請。只有SH。
請閱讀此:http://stackoverflow.com/a/1732454/867395 – 2014-12-04 09:00:47
使用XML解析器,如「xmllint」。 – Cyrus 2014-12-04 09:01:41
我不想做一個HTML解析器,我只是想使用一個子集的html標籤提取一些數據。 – user3072470 2014-12-04 09:45:17