0

我有一个文件,其中的值由制表符分隔。当一个值不存在时,我在相应的字段中放置一个“-”。

每行都以一个标识符开头。我只是搜索与给定标识符相对应的行,并在来自两台不同机器(B 和 C)的机器 A(Linux)上使用grep并出现两个不同的结果。特别是其中一台机器缺少一些连续的“-”。两台机器一台使用 linux ubuntu (B),另一台使用 MAC OSX (C)。这是一个例子:

输入文件:

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

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

来自机器 C 的 GREP

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

PS 这里的论坛标签是不可见的,所以我选择写用空格分隔的单词。

4

2 回答 2

0

您的输入文件在每台机器上都不同,或者您的输入文件包含在每台机器上解释不同的控制字符。运行diffcat -v在您的输入文件上发现哪个是真的。

于 2013-10-07T19:40:54.817 回答
0

如果文件相同,则 grep 可能不是。检查您的grep是否是链接、别名或内置(shell 函数)。尝试运行:

which grep
`which grep` 'comp6261_c0_seq1' file.txt
于 2013-10-07T21:30:13.997 回答