質問: aixでの文字列置換シェルスクリプト aixを使用していますが、使用しているsedのバージョンで使用できる-iオプションがありません。sed: illegal option -- i usage: sed [-n] script [file ...] sed [-n] [-e script] ... [-f script_file] ... [file ...] スクリプトを使用して、ファイルの1つにあるディレクトリのパスを置き換えたい。私はこのようにしようとしています:workdir="/workdir/liv/spool" archive="u/user/new" sed 's/$workdir/$archive/ig' test.dat > abc mv abc test.dat エラーが発生します:sed: function s/$workdir/$stratixarchive/ig cannot be parsed. $ workdirと同じすべてのオカレンスを$$ archiveに置き換えたい
回答: シェル変数は二重引用符( ")の間でのみ解決されます。sed "s/$workdir/$archive/ig" test.dat > abc(二重引用符)スラッシュがなければ機能します。 sedは任意の文字を使用してこれらの入力フィールドを区切ることができ、スラッシュはディレクトリパスに使用されるため、おそらく最良の選択ではありません。たとえば、代わりにこれを使用できます。sed "s#$workdir#$archive#ig" test.dat > abc