sedの変数

sedの変数

絶対パスを含むファイル名を含むファイルがあります。

そのパスの途中に変数ディレクトリがあります。変数部分をハードコードするたびに正しく機能しますが、変数名に置き換えるとそのsed部分は機能しません。

このsed部分は削除パターンまたはパスです。

file=`echo $one_file | sed 's:/dir1/dir2/$VAR/last_dir/::'`

答え1

単一引用符(ハード引用符とも呼ばれます)を使用すると、変数名は拡張されません。滑らかな引用符とも呼ばれる二重引用符を使用する必要があります。

sed "s:/dir1/dir2/$var/Last_dir/::"

または引用符をエスケープします。

sed 's:/dir1/dir2/'"$var"'/Last_dir/::'

$varまた、コロン、ドット、アスタリスク、改行、またはバックスラッシュ文字が含まれていないことを確認する必要があります[。含まれている場合はエスケープされます。

関連情報