Unix sed 无法读取。使用变量时出现特殊问题

Unix sed 无法读取。使用变量时出现特殊问题

控制文件中的一行如下所示:1039 ZA_BKPF_20170725103534.txt 因此,使用空格作为分隔符,我将文件名单独剪切并分配给如下所示的变量:file=echo "$line" | cut -d " " -f2

然后我使用 sed: sed -i 1d "$targetDir"/"$file"

但在日志中我得到了以下错误:我也做了一个 echo 来确认文件是否存在。如您所见,该文件存在。但 sed 说没有这样的文件或目录。

  • 文件=$'ZA_BKPF_20170725103534.txt\r'
  • echo '/u/applic/data/hdfs1/etl_grmacw/ACDW/source/ZA/ZA_BKPF_20170725103534.txt 存在' /u/applic/data/hdfs1/etl_grmacw/ACDW/source/ZA/ZA_BKPF_20170725103534.txt 存在
  • sed -i 1d $'/u/applic/data/hdfs1/etl_grmacw/ACDW/source/ZA/ZA_BKPF_20170725103534.txt\r' sed:无法读取/u/applic/data/hdfs1/etl_grmacw/ACDW/source/ZA/ZA_BKPF_20170725103534.txt:没有此文件或目录

有人熟悉 $'string\r'。为什么我的变量会发生这种情况。这是问题还是其他原因?有人能帮我吗?谢谢,Hari G

相关内容