特殊文字でSEDコマンドを使用する

特殊文字でSEDコマンドを使用する

sedthisコマンドを使用して行の先頭から特殊文字を検索し、別の特殊文字に置き換えてから、その特殊文字のみを行に追加する方法はありますか?

ちょっと探して、フォーラムを探して、理解しようとしましたsed。特殊文字に対して何かアクションを取る必要があるようです。sedaで始まる行を追加し、[aを追加するコマンドを使用していますが、]何もしません。何か抜けていると思います。もう一つの問題は、他のsed* that replaces a// [` に依存することですfor a

見つけて変える:

sed -e 'y#//#[#'

エラーが返されます。

sed: -e expression #1, char 7: strings for `y' command are different lengths

付録:

sed -e "/^'['/s/$/']/g"

ファイルのコピーを作成し、テキストエディタを使用して検索と置換を実行し、//を[に変更しましたが、このコマンドは何も返さず、最後に文字を追加しません。

このコマンドを動作させるにはまだ何かが不足しているようで、このコマンドを1つのコマンドに結合する方法があるかどうかはわかりません。

答え1

私が知る限り、あなたが望むものは、このsedコマンドが実行する必要があります。 「y」ではなく「s」コマンドを使用します。

  • 最初のsedコマンド(セミコロンまで)は、//のすべてのインスタンスを[に置き換えます。

  • 2 番目の sed コマンドは「[」で始まる行を探し、最後に「]」を追加します。

     echo -e "hello//goodbye\nhello[goodbye\n//hello_and_goodbye\n[hello_and_goodbye"|\
     sed 's~//~[~g;/^\[/s~$~]~'
    

関連情報