生物信息学与算法

文本拼接错误:后面的内容跑到前面去了

2020-05-03  本文已影响0人  王诗翔

今天很奇怪,在对文本内容循环取变量进行常规的 Linux 拼接字符串操作都不起作用了。

$ bash batch_gen.sh 
Processing EGAN00001749284
gzsers/wsx/EGA/EGAD00001004183/clean2/EGAN00001749284


Processing EGAN00001749285
gzsers/wsx/EGA/EGAD00001004183/clean2/EGAN00001749285

几经摸索才发现完全不是代码的锅,原来是文件来自 Windows,它的回车符号与 Unix 不一样导致的。解决办法是使用编辑器转换 CRLF 为 LF(Windows下),或者使用 dos2unix 命令(有的系统可能需要安装)。

事实证明,迭代文件之前还是检查一下文件格式比较好,使用 cat -t

$ cat -t ID_STAR.csv 
EGAN00001749284^M
EGAN00001749285^M
EGAN00001749287^M
EGAN00001749288^M
EGAN00001749289^M
EGAN00001749290^M
EGAN00001749291^M
EGAN00001749292^M
EGAN00001749293^M
EGAN00001749295^M

如果行尾有 ^M 标志,就需要转换下啦。

上一篇 下一篇

猜你喜欢

热点阅读