![如何使用 Privoxy 删除线路?](https://linux22.com/image/16602/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Privoxy%20%E5%88%A0%E9%99%A4%E7%BA%BF%E8%B7%AF%EF%BC%9F.png)
我知道如何用 privoxy 交换某些内容,例如:
s/class="node ad"/class="node ad" style="display:none"/g
但是如何使用 privoxy 删除一行呢?例如:如果一行包含:
RANDOM STRING BEFORE<a href="/forum/100">Offtopic</a></td>RANDOM STRING AFTER
那么我应该在 user.action 文件中写入什么来删除该行?
我正在 Privoxy 中寻找这种“sed”效果:
echo -e "asdf\nsomething2\nadf" | sed '/thing2/d;'
如果我在 user.filter 文件中使用“/Offtopic/d”,它将不起作用。 (是的,我在 user.filter 中有其他规则完美运行。)
答案1
您可能想阅读正则表达式。您发布的行是正则表达式:
s/class="node ad"/class="node ad" style="display:none"/g
它的意思是“用第二个字符串替换第一个字符串的每次出现”。
如果你想删除某些内容,可以将第二个字符串留空,如下所示:
s/class="node ad"//g
这将删除该字符串的所有出现位置。
如果你想匹配整行,你可以使用:
s/^.*some_string.*$//g
其中^
是表示“行开头”的特殊字符,$
表示“行结束”,.
表示任何字符,并且*
表示该字符的零次或多次重复。
因此,它将匹配“任何字符的零次或多次重复”,然后是“some_string”,然后再次匹配“任何字符的零次或多次重复”(这应该达到您想要的效果)。
答案2
我不知道 Privoxy,但从上面的替换语句来看可以工作:
s/^.*<a href="/forum/100">Offtopic</a></td>.*$//