第1期:我的代码工作只有grep的采取恒定的模式是这样的:在巨大的html文件中选择两个patern之间的文本?
echo "$s" | grep -oP '(?<=class="A3">).*(?=)'
第二个问题:一个变量不是工作压力太大
这里分配输出是我的脚本:
#!/bin/sh
filename="data.txt"
"while read -r line
do
case "$line" in
# working 100%
#*$Ptr_ValidChannel*) echo "$line" | grep -oP '(?<=class="A3">).*?(?=)' ;;
# 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的内容:
I24 News Français在我的系统命令:
ls -la /bin/sh
输出为:
/bin/sh -> dash
最诚挚的问候。
PS。没有BASH代码请。只有SH。
+1
请阅读此:http://stackoverflow.com/a/1732454/867395 –
2014-12-04 09:00:47
+0
使用XML解析器,如“xmllint”。 –
2014-12-04 09:01:41
+0
我不想做一个HTML解析器,我只是想使用一个子集的html标签提取一些数据。 –
2014-12-04 09:45:17