传递sed包含空格的shell脚本变量

时间:2011-06-16 16:42:57

标签: shell

忽略.bat扩展名,只是旧dos批处理文件日的习惯。

我有2个简单的shell脚本。我想将带有空格的文件名(带有spaces.ext的文件)从little.bat传递给big.bat,如下所示。它不会让我把文件名放在单引号或双引号中。

第一个名为little.bat:

./big.bat some file with spaces.ext

第二个名为big.bat:

  

cat template.iss | SED   “s / replace123 / $ 1 / g”| SED   “s / replace456 / $ 1 / g”> $ 1.iss

2 个答案:

答案 0 :(得分:1)

使用其他sed命令转义空格。

你可以在这里详细了解这个想法: Escape a string for a sed replace pattern

答案 1 :(得分:0)

您可以使用反斜杠转义每个空格:

some\ file\ with\ spaces.ext

这样,每个空格都在引用上传递,并且shell不会将空格解析为“这是一个参数的结束和另一个参数的开始”。