sed
thisコマンドを使用して行の先頭から特殊文字を検索し、別の特殊文字に置き換えてから、その特殊文字のみを行に追加する方法はありますか?
ちょっと探して、フォーラムを探して、理解しようとしましたsed
。特殊文字に対して何かアクションを取る必要があるようです。sed
aで始まる行を追加し、[
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~$~]~'