usingをすべて
に置き換える必要があります。次の内容は有効ですか、それとも使用する必要がありますか?0x02
sed
\
sed -i -E "s/<>/<0x02>/g" $output_file
では、どうすればよいですか?
答え1

文字列がコマンドのパターン部分で文字通り解釈されるように文字列にエスケープする必要がある特殊文字はありません。s///
sed
また、代替文字列には特別な処理が必要な特殊文字はありません0x02
(GNUを使用している場合、代替文字列の特殊文字は&
特殊文字などになります)。\1
\2
\n
\t
sed
これはあなたができることを意味します
sed 's//0x02/g' inputfile >outputfile
特別な処理が必要な唯一の方法は、部分
文字列の置換を避けることです。たとえば、#
質問にサンプル文書が表示されないため、これが問題になるかどうかを防ぐための最善の方法を正確に伝えることはできません。
一般的に言えば、いいえ誤ってデータが失われるのを防ぐために編集式またはスクリプトを使用できることがわかるまで、-i
withオプションを使用してください。ここでも拡張正規表現をまったく扱っていないので、ここでもそうする必要はありません。sed
sed
-E
sed
名前が変数に格納されているファイルに対してコマンドを実行する場合は、その変数の拡張子を二重引用符で囲む必要があります(参照:スペースやその他の特殊文字が原因でシェルスクリプトが停止するのはなぜですか?)。