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不包含任何冒号、点、星号、、[换行符或反斜杠字符,或者如果包含,它们将被转义。

相关内容