標準出力に単純なURLテキストがあります。 URLの一部が下に表示されます。
https://somedomain./xx?t=s&u=random other text
コマンドラインでsedや他のものを使ってこれを変更したいと思います。
https://somedomain./xx?t=l&u=random other text
使ったsed -e 's/s&/l&/'
に置き換える代わりにs&
文字列を入力しました。私の注文に問題がありますか?l&
ls&
答え1
s
コマンドの右側に「\」を追加して、コマンドの右側の「&」文字をエスケープする必要があります。これがなければ、「&」は特別で、正規表現に一致する項目に置き換えられます。左側の「&」は特別ではなく、特別でないことを保証します。 whileは&
決して特別ではなく、\&
特別であることは保証されず、一致する項目が指定されていないため、エスケープを避けたくありません。
だから:
sed -i 's/s&/l\&/g' file.txt