我有一个包含带有绝对路径的文件名的文件。
在该路径的中间,是一个变量目录,每当我对变量部分进行硬编码时,它都可以正常工作,但是当我用变量名称替换它时,该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
不包含任何冒号、点、星号、、[
换行符或反斜杠字符,或者如果包含,它们将被转义。