※ ChatGPTを利用し、要約された質問です(原文:sedコマンドでのエスケープ文字の扱い)
sedコマンドでのエスケープ文字の扱い
このQ&Aのポイント
sedコマンドでのエスケープ文字の扱いについて困っています。エスケープ文字の個数がわからない場合に、複雑な処理なしに対処する方法を教えてください。
sedコマンドで連続するエスケープ文字をリテラルとして扱う方法を教えてください。エスケープ文字の個数がわからない場合の対処方法を教えてください。
Linuxのsedコマンドにおいて、エスケープ文字の扱いについて困っています。エスケープ文字の個数がわからない場合に、シンプルな方法で対処する方法を教えてください。
はじめまして。Linuxのsedコマンドで困っています。
sedの置換文字列として連続する\をリテラルとする処理を考えていますが、\がいくつ入ってくるか(変数)、わからない場合において、複雑な処理なしに対処できないか、考えています。
↓簡単な例ですが、コマンドベースで説明すると以下のようなものです。
$ var='\\'
$ cat file.txt
aa
$ sed "s/.*/$var/" file.txt
\
という結果になりますが、置換文字を変数から取る際に、連続する\が設定されるケースを想定したプログラムを組むたいと思っています。
\が入ってくる個数がわかるのであれば、\を2倍にセットしておけばできそうですが、いくつセットされてくるかはわからない場合、何かよい方法はないでしょうか。
念のため、Linux環境で、GNU sed 4.1.2版で試行しています。シェルはbashです。よろしくお願いします。
補足
回答ありがとうございました。 まずパターンマッチで\を拾ってそれを後方参照で、対応すればよいのですね。