Bash IO重定向 - 带有\ r \ n的特殊文件名

时间:2014-03-25 23:49:35

标签: bash redirect awk io

我从大文件中提取一些信息并将输出定向到另一个文件,如下所示

awk '{if ($1=="Multiple"); print $3}' file_01.txt > results.txt

当我将上面的行放在files.sh中并使用bash命令执行它时,奇怪的是我发现结果文件名不是results.txt而是results.txt\r\n

无论如何我可以从文件名中删除尾随\r\n吗?

当我测试终端中的awk行时,我得到了正确的文件名而没有回车和换行。

echo 命令中,有选项-n来解决此问题,但找不到任何awk。

希望你能协助解决问题。

p / s:由于我必须从许多大文件中提取信息,因此我将所有awk命令堆叠在一个bash文件中以便于执行。

2014年3月26日更新

感谢您的指导。

  1. 想确认file_01.txt的内容确实有\ r \ n(回车和换行对)并且是从Windows机器生成的。然后将该文件移植到Ubuntu 10.04以进行进一步的后处理。

  2. 由于Ubuntu 10.04没有使用fromdos(tofrodos包)的dos2unix,尝试了以下语法。

  3. fromdos file_01.txt
    fromdos -d file_01.txt
    fromdos < file_01.txt > fromdos_output.txt
    

    以上所有内容仍然使用\ r \ n results.txt\r\n

    生成文件名

    文件的内容(带有\ r \ n的行)是否会影响Ubuntu机器中的文件范围?

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。 我做了fromdos bash文件,它不再生成带有\r\n的文件名。 谢谢你的提示。