2014-05-02 33 views
2

这是我第一天尝试使用bash,所以我对这个可能愚蠢的问题....cat命令不读所有的数据在文本文件

道歉我有一个制表符分隔文本文件24行5列。这里是第一对几行例如:

rad97pt_1 p97_1 raddptdz97_1 dp97_1 rad97_1 w97_1 
rad97pt_2 p97_2 raddptdz97_2 dp97_2 rad97_2 w97_2 
rad97pt_3 p97_3 raddptdz97_3 dp97_3 rad97_3 w97_3 

我想使用cat命令来显示文本文件中的所有数据。这里是我的代码写的vi编辑器:

#!/bin/bash 
cat filelist97.txt 

我的输出是:

rad97pt_24  p97_24 raddptdz97_24 dp97_24 rad97_24 w97_24 

为什么只输出文本文件的最后一行?再次感谢您的帮助!

+2

因此,当你执行这个脚本你只是得到这个?它看起来很奇怪。你如何执行脚本? – fedorqui

+2

问题。线标记的奇怪结尾。用十六进制编辑器/工具(例如'hexdump -C')查看你的文件。 – Mat

+0

bash-3.2 $ ./auto.sh rad97pt_24 p97_24 raddptdz97_24 dp97_24 rad97_24 w97_24bash-3.2 $ – user3521263

回答

4

我猜你的文件中的行结束回车(\ r字符)没有跟着新行。 这会导致每行被下一行覆盖,而您只能看到最后一行。 尝试做

tr '\r' '\n' <filelist97.txt 

如果修复它,你应该考虑固定文件。