Text-Processing
替換字元對之間的字元串
有一個名為的文件
sites.txt
,它包含具有長 URL 的動態站點,如下所示:http://onesite.com/a.php?one=1&two=2&three=3 http://anothersite.com/b.php?one=1&two=2 http://aaaandanothersite.com/a.php?one=1&two=2&three=3&four=4
而且我必須刪除所有參數值,輸出如下:
http://onesite.com/a.php?one=&two=&three= http://anothersite.com/b.php?one=&two= http://aaaandanothersite.com/a.php?one=&two=&three=&four=
如果有正則表達式或捷徑,我喜歡聽。但是如果沒有辦法以這種單行方式執行此操作,則站點已經在 for 功能中,因此也可以逐行處理
使用
sed
:sed -E 's/=[^&]*(&|$)/=\1/g' sites.txt
替換
=
後跟任何字元(除ewline )***,***但\n
不是以行(_它表示這是最後一個參數。&``[^&]*``&``|``$``(&|$)``=``(&|$)``\1``&
使用 Perl,你可以執行一些類似的東西
perl -ple 's/=[^&=]*/=/g' sites.txt
在哪裡:
perl -ple exp
相當於對於沒有終止符的每一行, print(exp(line))