Awk
移除請求參數值
考慮文件中的字元串/ URL 列表,如下所示
$ cat urls.txt https://example.com/index.php?param1=value1¶m2=value2¶m3=value3 https://example2.com/home.php?param1=value1¶m2=value2
我需要刪除參數值,如下所示
$ cat replaced.txt https://example.com/index.php?param1=¶m2=¶m3= https://example2.com/home.php?param1=¶m2=
我怎樣才能做到這一點?我使用sed嘗試了幾種變體,最終替換了**=和&**之間的所有內容,如下所示
$ sed -r 's/(=)(.*)(&)/\1\3/g' urls.txt https://example.com/index.php?param1=¶m3=value3 https://example2.com/home.php?param1=¶m2=value2
謝謝
嘗試
sed -r 's/(=)([^=]*)(&)/\1\3/g;s/(=)([^=]*)$/\1/'
在哪裡
s/(=)([^=]*)(&)/\1\3/g
對 firstsparam=value
模式執行替換,但停止=
(以避免貪婪匹配)s/(=)([^=]*)$/\1/
替換最後一個模式
嘗試使用以下命令
sed -e "s/[a-z]*[0-9]\&/\&/g" -e "s/[a-z]*[0-9]$//g" filename
輸出
https://example.com/index.php?param1=¶m2=¶m3= https://example2.com/home.php?param1=¶m2