删除引号并在shell脚本中将文件扩展名添加到filename

时间:2014-10-29 11:41:10

标签: shell filenames

在我编写的shell脚本中

我想从另一个文件中读取文件名,删除引号并为其添加文件扩展名。

tmp=$(awk '/output_onefile/ {getline;print}' $cmds_file)
tmp=$(echo "$tmp" | tr -d '"')
uh3dsr_file="${tmp}.sr_uh3d"

在$ cmds_file后面的文件中," output_onefile"后面的行中有一个文件名。文件名是引号,我在第二行删除。到目前为止,一切正常。 然后我只想将.sr_uh3d添加到文件名中。

当我运行这样的代码时,让我们说,文件名为" Blabla_123456",我最终得到以下内容:

echo "$uh3dsr_file"
.sr_uh3d23456
echo "Text $uh3dsr_file"
.sr_uh3dbla_123456

将.sr_uh3d放在其余部分之前并覆盖其余部分的开头。

任何人都可以向我解释这种行为吗?是否清楚我想做什么?

1 个答案:

答案 0 :(得分:1)

您的文本文件具有CRLF行结尾,但您的工具期望LF行结尾。事先使用dos2unix或使用tr或参数替换从文本中删除CR。