以下のように、ファイルの文字列/ 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
ありがとう
ベストアンサー1
試してみてください
sed -r 's/(=)([^=]*)(&)/\1\3/g;s/(=)([^=]*)$/\1/'
どこ
s/(=)([^=]*)(&)/\1\3/g
最初のパターンで交換を実行しparam=value
ますが、停止します=
(貪欲な一致を避けるため)。s/(=)([^=]*)$/\1/
最後のパターンを置き換える