輸入檔案
<a href="perl.html">perl</a> <a href="http://zoidberg.sourceforge.net/out.html">http://zoidberg.sourceforge.net</a>
<a href="zoiduser.html">zoiduser</a> <a href="perl.html">perl</a> <a href="http://zoidberg.sourceforge.net/sample.html">http://zoidberg.sourceforge.net</a>
我只需要從上面的檔案中的下面的 URL 中洗掉 .HTML 擴展名:
<a href="perl.html">perl</a>
<a href="zoiduser.html">zoiduser</a>
因此最終輸出應如下所示:
<a href="perl">perl</a> <a href="http://zoidberg.sourceforge.net/out.html">http://zoidberg.sourceforge.net</a>
<a href="zoiduser">zoiduser</a> <a href="perl.html">perl</a> <a href="http://zoidberg.sourceforge.net/sample.html">http://zoidberg.sourceforge.net</a>
這就是我正在做的事情:
sed '/"http\|"www\|"mailto/ ! s|\(.html\)||g' file
但是一旦匹配第一個模式,它就會忽略該行,即避免以“http|”www|“mailto 開頭的 URL。
uj5u.com熱心網友回復:
您可以使用
sed -E 's/("(http|www|mailto)[^"]*")|\.html/\1/g' file
詳情:
-E- 啟用 POSIX ERE 語法("(http|www|mailto)[^"]*")- 第 1 組 (\1):"然后是http、www或mailto,然后是零個或多個字符",然后是 a"|- 或者\.html-.html字串。
替換是第 1 組值。
查看在線演示:
#!/bin/bash
s='<a href="perl.html">perl</a> <a href="http://zoidberg.sourceforge.net/out.html">http://zoidberg.sourceforge.net</a>
<a href="zoiduser.html">zoiduser</a> <a href="perl.html">perl</a> <a href="http://zoidberg.sourceforge.net/sample.html">http://zoidberg.sourceforge.net</a>'
sed -E 's/("(http|www|mailto)[^"]*")|\.html/\1/g' <<< "$s"
輸出:
<a href="perl">perl</a> <a href="http://zoidberg.sourceforge.net/out.html">http://zoidberg.sourceforge.net</a>
<a href="zoiduser">zoiduser</a> <a href="perl">perl</a> <a href="http://zoidberg.sourceforge.net/sample.html">http://zoidberg.sourceforge.net</a>
uj5u.com熱心網友回復:
不建議使用 sed、awk、perl 等 shell 實用程式決議 HTML。但如果你真的必須使用某些關鍵字的否定,那么我建議這樣做perl:
perl -pe 's/"(?!www|http|mailto)([^"] )\.html/"\1/g' f.html
<a href="perl">perl</a> <a href="http://zoidberg.sourceforge.net/out.html">http://zoidberg.sourceforge.net</a>
<a href="zoiduser">zoiduser</a> <a href="perl">perl</a> <a href="http://zoidberg.sourceforge.net/sample.html">http://zoidberg.sourceforge.net</a>
(?!www|http|mailto)如果這些關鍵字緊隨其后,則為否定前瞻以使匹配失敗"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479770.html
