最近遇见一个奇葩问题,从excel 导出的文件,导入服务器进行处理老是报错。
bedtools intersect -a hda705_edgeR_up.bed -b Up_bed_no_clean.bed |wc -l
#Unexpected file format. Please use tab-delimited BED, GFF, or VCF. Perhaps you have non-integer starts or ends at line 1?
后来发现原来windows导出后自带换行符。
例如 使用cat -v命令显示文件中的非打印字符:
cat -v your_file.bed
Chr9 14088131 14088623^M
Chr9 14088131 14088623^M
Chr9 14088131 14088623^M
Chr9 14088131 14088623^M
^M 是 Windows 操作系统中换行符 \r 的可见表示形式。它通常会出现在通过 Windows 环境下创建的文件中,而在 Linux 或 Unix 环境下查看时可能会出现问题。
你可以使用以下命令将文件中的 ^M 替换为标准的 Unix 换行符:
sed -i 's/\r$//' your_file.bed
这个命令会在文件中删除所有的 \r(^M 的实际表示)字符,并将文件保存为 Unix 格式的换行符。然后你可以再次检查文件内容,确保 ^M 字符已经被移除了。
cat -v your_file.bed
Chr9 14088131 14088623
Chr9 14088131 14088623
Chr9 14088131 14088623
Chr9 14088131 14088623
这样后续在进行操作就不会报错了!!!
bedtools intersect -a hda705_edgeR_up.bed -b Up_bed_no_clean.bed |wc -l
3597