我很抱歉,如果這是一個非常愚蠢的問題。我有數據格式:Grep/RegExp幫助
etc etc etc <span>etc etc etc</span> etc etc etc
etc etc etc <span>etc etc etc</span> etc etc etc
etc etc etc <span>etc etc etc</span> etc etc etc
有沒有辦法到grep每一行落在跨度標籤的外部的任一側比賽?
我很抱歉,如果這是一個非常愚蠢的問題。我有數據格式:Grep/RegExp幫助
etc etc etc <span>etc etc etc</span> etc etc etc
etc etc etc <span>etc etc etc</span> etc etc etc
etc etc etc <span>etc etc etc</span> etc etc etc
有沒有辦法到grep每一行落在跨度標籤的外部的任一側比賽?
使用GAWK,如果你把它(說出你的操作系統下一次)
gawk 'BEGIN{
RS="</span>"
FS="\n"
}
{
m=split($0,a,"<span>")
if(a[1] ~ /word/){
print "found: "a[1]" in line: "NR
}
} ' file
輸出
$ cat file
word <span> word blah</span> word
word <span> word
blah</span>
word etc <span> word blah</span> etc
$ ./shell.sh
found: word in line: 1
found: word
word in line: 2
found:
word etc in line: 3
,或者嘗試用sed:
sed 's:<span>.*</span>::' <FILE>
HTH
grep "\(StringGoesHere.*<span>.*</span>\)\|\(<span>.*</span>.*StringGoesHere\)"
這只是在span標籤之前測試StringGoesHere
,並在span標籤之後再次測試。如果每行有多於一組的span標籤,這將不起作用,並且如果該行沒有任何span標籤也不起作用。
正確,但小口頭解釋可能有幫助。 – 2010-03-12 06:29:33
grep "SearchString" | grep -v "<span>.*SearchString.*</span>"
應該找到任何符合SearchString
所有,然後刪除其中SearchString
裏面<span> ... </span>
線。
你到底在找什麼?存在的字符串,但只有在span標記中不存在的字符串? – 2010-03-12 05:33:33
我只需要找到標籤外部特定字符串的所有行 - 如果它顯示在裏面,它很好,但它不被視爲匹配。 – Calvin 2010-03-12 06:18:11
謝謝澄清。 – 2010-03-12 06:27:40