Bash IO重定向-具有特殊文件名\r\n
我正在从一个大文件中提取一些信息,并将输出定向到另一个文件,如下所示Bash IO重定向-具有特殊文件名\r\n,bash,redirect,awk,io,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 '{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日更新
谢谢你的指导
fromdos文件\u 01.txt
fromdos-d文件_01.txt
fromdosfromdos_output.txt
以上所有操作仍然生成带有\r\n的文件名,即results.txt\r\n
文件的内容(带\r\n的行)会影响Ubuntu机器中的文件命名吗?我设法解决了这个问题。
我从DOS执行了bash文件,它不再生成带有\r\n
的文件名。
谢谢您的提示。您的文件\u 01.txt
已返回。在运行awk
之前,先通过dos2unix
实用程序运行它。您是否有可能在Windows和*nix之间移动了文件?如果是这样,请使用dos2unix
/unix2dos
修复行分隔符差异您可以从unix ShellScriptsAypal、DigitalTrampar和Eugen的unix行结尾开始使用新实验的结果更新我的writeup。据说Ubuntu10.04中使用的DOS没有dos2unix。尤金,你的意思是想找个方法来代替你?
fromdos file_01.txt
fromdos -d file_01.txt
fromdos < file_01.txt > fromdos_output.txt