要求パラメータ値の削除

要求パラメータ値の削除

以下のように、ファイルの文字列/ URLのリストを検討してください。

$ cat urls.txt
https://example.com/index.php?param1=value1&param2=value2&param3=value3
https://example2.com/home.php?param1=value1&param2=value2

以下のようにパラメータ値を削除する必要があります。

$ cat replaced.txt
https://example.com/index.php?param1=&param2=&param3=
https://example2.com/home.php?param1=&param2=

どうすればいいですか?私は以下を使用していくつかのバリエーションを試しました。sed最終的に間のすべてを置き換えます。=そして&次のように

$ sed -r 's/(=)(.*)(&)/\1\3/g' urls.txt
https://example.com/index.php?param1=&param3=value3
https://example2.com/home.php?param1=&param2=value2

ありがとう

ベストアンサー1

試してみてください

sed -r 's/(=)([^=]*)(&)/\1\3/g;s/(=)([^=]*)$/\1/'

どこ

  • s/(=)([^=]*)(&)/\1\3/g最初のパターンで交換を実行しparam=valueますが、停止します=(貪欲な一致を避けるため)。
  • s/(=)([^=]*)$/\1/最後のパターンを置き換える

おすすめ記事