Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Grep从不同的机器访问服务器的方式不同_Linux_Grep - Fatal编程技术网

Linux Grep从不同的机器访问服务器的方式不同

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

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

每行以一个标识符开头。我只是在搜索与给定标识符对应的行,在机器a(Linux)上使用grep从两台不同的机器(B和C)搜索,结果会出现两个不同的结果。特别是其中一台机器缺少一些连续的“-”。 这两台机器一台是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 '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会告诉您它是否真的不同。