Linux Grep从不同的机器访问服务器的方式不同
我有一个文件,其中的值由制表符分隔。当一个值不存在时,我在相应的字段中放一个“-” 每行以一个标识符开头。我只是在搜索与给定标识符对应的行,在机器a(Linux)上使用grep从两台不同的机器(B和C)搜索,结果会出现两个不同的结果。特别是其中一台机器缺少一些连续的“-”。 这两台机器一台是linux ubuntu(B),另一台是MAC OSX(C)。 以下是一个例子: 输入文件:Linux Grep从不同的机器访问服务器的方式不同,linux,grep,Linux,Grep,我有一个文件,其中的值由制表符分隔。当一个值不存在时,我在相应的字段中放一个“-” 每行以一个标识符开头。我只是在搜索与给定标识符对应的行,在机器a(Linux)上使用grep从两台不同的机器(B和C)搜索,结果会出现两个不同的结果。特别是其中一台机器缺少一些连续的“-”。 这两台机器一台是linux ubuntu(B),另一台是MAC OSX(C)。 以下是一个例子: 输入文件: comp10034_c0_seq1 281 - UniRef90_B7GCX2 276 3e-29 6
comp10034_c0_seq1 281 - UniRef90_B7GCX2 276 3e-29 640 98.220640569395 13.90625 Predicted_protein Phaeodactylum_tricornutum - - GO:0006200 ATP_catabolic_process GO:0005524 ATP
binding GO:0016020 membrane pfam00005 138-230 1.00e-09 - - - 93 - 0 0.136126 0
comp10036_c0_seq1 315 - - - - - - - - - - - - - - -- - - - - - - - - 77 + 2 0.00277103 0
comp10037_c0_seq1 350 - - - - - - - - - - - - - - -- - - - - - - - - 77 + 2 0.738719 0
comp6261_c0_seq1 1227 - UniRef90_K0R0D8 519 1e-82 186 42.2982885085575 98.9247311827957 Uncharacterized_protein Thalassiosira_ oceanica - - - - - - - - - - - - - -- 350 + 1 0.0034993 0
来自机器B的格雷普
grep 'comp6261_c0_seq1' file.txt
grep 'comp6261_c0_seq1' file.txt
结果:
comp6261_c0_seq1 1227 - UniRef90_K0R0D8 519 1e-82 186 42.2982885085575 98.9247311827957 Uncharacterized_protein Thalassiosira_oceanica - - - - - - - - - - - - - -- 350 + 1 0.0034993 0
comp6261_c0_seq1 1227 - UniRef90_K0R0D8 519 1e-82 186 42.2982885085575 98.9247311827957 Uncharacterized_protein Thalassiosira_oceanica - 350 + 1 0.0034993 0
来自机器C的GREP
结果:
comp6261_c0_seq1 1227 - UniRef90_K0R0D8 519 1e-82 186 42.2982885085575 98.9247311827957 Uncharacterized_protein Thalassiosira_oceanica - - - - - - - - - - - - - -- 350 + 1 0.0034993 0
comp6261_c0_seq1 1227 - UniRef90_K0R0D8 519 1e-82 186 42.2982885085575 98.9247311827957 Uncharacterized_protein Thalassiosira_oceanica - 350 + 1 0.0034993 0
附言。
这里的论坛选项卡不可见,因此我选择用空格分隔文字。您的输入文件在每台机器上不同,或者您的输入文件包含的控制字符在每台机器上的解释不同。在输入文件上运行
diff
和cat-v
,以发现哪个是正确的。如果文件相同,则grep可能不相同。检查您的grep
是链接、别名还是内置(shell函数)。尝试运行:
which grep
`which grep` 'comp6261_c0_seq1' file.txt
100%确定两台机器上的
file.txt
相同吗?你有区别吗?@hek2mgl我可能会使用校验和,比如md5sum
。不过,这将是我的第一个问题。最有可能的情况是文件以不同的方式生成,在文件传输过程中被转换,或者只是在一台机器上被修改?machine1和Machine2是什么操作系统几天前我已经添加了一条评论,但现在还没有。我错了。我和我的主管正在使用文件访问同一台机器。grep在同一台机器上。唯一的区别是我正在使用ubuntu,他正在使用OSX。当你说“使用ubuntu访问”时,你是什么意思?它是一个远程文件系统挂载,还是您在使用ssh或其他什么?看起来区别不在于grep的输出,而在于您查看grep的终端<代码>grep…|md5sum会告诉您它是否真的不同。