我有两个长度相同的文件,我希望每行合并一行。以下是我的文件:
FileA.txt
DM CM127861 chr14 103390285 + NM_030943 AMN Megaloblasticanaemia1
DM CM118934 chr14 103395855 + NM_030943 AMN Megaloblasticanaemia1
DM CM127864 chr14 103395992 + NM_030943 AMN Megaloblasticanaemia1
DM CM088131 chr14 103395814 + NM_030943 AMN Megaloblasticanaemia1
DM CM124403 chr14 103395776 + NM_030943 AMN Imerslund-Gr‰sbecksyndrome
DM CM002932 chr1 115220593 - NM_000036 AMPD1 Adenosinemonophosphatedeaminasedeficiency
etc
FileB.txt
TGT C TAT Y
ATG M AAG K
CAG Q GAG E
CCG P TCG S
CCG P CTG L
GCG A GTG V
我希望我的最终输出为:
DM CM127861 chr14 103390285 + NM_030943 AMN Megaloblasticanaemia1 TGT C TAT Y
etc
为此,我一直在使用此粘贴命令:paste -d '\t' FileA.txt FileB.txt > combined.txt
但是,我一直收到此错误Error reading FileA.txt
。我很确定它与我的%
标志有关。我试图将我文件中的所有%更改为另一个角色,但后来遇到了另一个无法处理的角色。我很确定它会在整个文件中遇到这些错误,因为它有一些不寻常的字符。当存在一些不寻常的字符时,还有其他方法可以合并文件行吗?
以下两个文件的ls -l:
-rw-r--r--@ 1 christy staff 4811597 Aug 27 14:18 Translated.txt
-rw-r--r-- 1 christy staff 846004 Aug 27 14:18 Translated2.txt
答案 0 :(得分:1)
有些东西你没有告诉我们。例如,这没有问题:
$ paste FileA.txt FileB.txt
Syndrome ATG Y
Syndrome% AGT K
如果您收到“读取FileA.txt错误”,则表明该文件可能不存在或您没有读取权限。什么
ls -l *.txt
说什么?您是不是偶然发现Unix在文件名中的区分大小写?
编辑:可能与扩展属性有关。您可以使用
列出它们$ xattr -l FileA.txt
或
$ ls -l@ *.txt
由于你的文件中的“有趣”字符,从医生的名字来看,应该像Imerslund-Gräsbeck一样,它可能与编码有关。如果ls -l@
显示出com.apple.TextEncoding
之类的内容,请尝试使用
$ xattr -d com.apple.TextEncoding FileA.txt
如果显示其他属性,例如com.apple.quarantine
,也可以删除它们。