仅根据其部分对行进行排序
Sort lines based only on its part
假设我有一个如下所示的输入文件:
65CH6 N 990 3.717 2.836 2.649
65CH6 HMN1 991 3.807 2.880 2.647
61VAL N 894 4.260 3.037 2.527
61VAL HN 895 4.355 3.063 2.538
61VAL CA 896 4.189 2.958 2.625
61VAL C 908 4.057 3.023 2.669
61VAL O 909 3.952 2.958 2.668
64PHE N 938 3.817 3.002 2.420
64PHE HN 939 3.915 3.018 2.412
64PHE CA 940 3.760 2.868 2.403
64PHE HA 941 3.682 2.866 2.327
现在我想对这些行进行排序,但仅基于第一列,即
得到这样的东西:
61VAL N 894 4.260 3.037 2.527
61VAL HN 895 4.355 3.063 2.538
61VAL CA 896 4.189 2.958 2.625
61VAL C 908 4.057 3.023 2.669
61VAL O 909 3.952 2.958 2.668
64PHE N 938 3.817 3.002 2.420
64PHE HN 939 3.915 3.018 2.412
64PHE CA 940 3.760 2.868 2.403
64PHE HA 941 3.682 2.866 2.327
65CH6 N 990 3.717 2.836 2.649
65CH6 HMN1 991 3.807 2.880 2.647
而不是我用 sort -g file.dat > file-sorted.dat
得到的
61VAL CA 896 4.189 2.958 2.625
61VAL HN 895 4.355 3.063 2.538
61VAL C 908 4.057 3.023 2.669
61VAL N 894 4.260 3.037 2.527
61VAL O 909 3.952 2.958 2.668
64PHE CA 940 3.760 2.868 2.403
64PHE HA 941 3.682 2.866 2.327
64PHE HN 939 3.915 3.018 2.412
64PHE N 938 3.817 3.002 2.420
65CH6 HMN1 991 3.807 2.880 2.647
65CH6 N 990 3.717 2.836 2.649
以及我得到的 sort -g -k1,5 file.dat > file-sorted.dat
这是
61VAL CA 896 4.189 2.958 2.625
61VAL HN 895 4.355 3.063 2.538
61VAL C 908 4.057 3.023 2.669
61VAL N 894 4.260 3.037 2.527
61VAL O 909 3.952 2.958 2.668
64PHE CA 940 3.760 2.868 2.403
64PHE HA 941 3.682 2.866 2.327
64PHE HN 939 3.915 3.018 2.412
64PHE N 938 3.817 3.002 2.420
65CH6 HMN1 991 3.807 2.880 2.647
65CH6 N 990 3.717 2.836 2.649
您必须指定起始键和键数,并禁用对其他所有内容进行排序的 "last resort" 功能:
sort -g -k1,1 -s file.dat > file-sorted.dat
有关详细信息,请参阅 sort man page。
假设我有一个如下所示的输入文件:
65CH6 N 990 3.717 2.836 2.649
65CH6 HMN1 991 3.807 2.880 2.647
61VAL N 894 4.260 3.037 2.527
61VAL HN 895 4.355 3.063 2.538
61VAL CA 896 4.189 2.958 2.625
61VAL C 908 4.057 3.023 2.669
61VAL O 909 3.952 2.958 2.668
64PHE N 938 3.817 3.002 2.420
64PHE HN 939 3.915 3.018 2.412
64PHE CA 940 3.760 2.868 2.403
64PHE HA 941 3.682 2.866 2.327
现在我想对这些行进行排序,但仅基于第一列,即 得到这样的东西:
61VAL N 894 4.260 3.037 2.527
61VAL HN 895 4.355 3.063 2.538
61VAL CA 896 4.189 2.958 2.625
61VAL C 908 4.057 3.023 2.669
61VAL O 909 3.952 2.958 2.668
64PHE N 938 3.817 3.002 2.420
64PHE HN 939 3.915 3.018 2.412
64PHE CA 940 3.760 2.868 2.403
64PHE HA 941 3.682 2.866 2.327
65CH6 N 990 3.717 2.836 2.649
65CH6 HMN1 991 3.807 2.880 2.647
而不是我用 sort -g file.dat > file-sorted.dat
61VAL CA 896 4.189 2.958 2.625
61VAL HN 895 4.355 3.063 2.538
61VAL C 908 4.057 3.023 2.669
61VAL N 894 4.260 3.037 2.527
61VAL O 909 3.952 2.958 2.668
64PHE CA 940 3.760 2.868 2.403
64PHE HA 941 3.682 2.866 2.327
64PHE HN 939 3.915 3.018 2.412
64PHE N 938 3.817 3.002 2.420
65CH6 HMN1 991 3.807 2.880 2.647
65CH6 N 990 3.717 2.836 2.649
以及我得到的 sort -g -k1,5 file.dat > file-sorted.dat
这是
61VAL CA 896 4.189 2.958 2.625
61VAL HN 895 4.355 3.063 2.538
61VAL C 908 4.057 3.023 2.669
61VAL N 894 4.260 3.037 2.527
61VAL O 909 3.952 2.958 2.668
64PHE CA 940 3.760 2.868 2.403
64PHE HA 941 3.682 2.866 2.327
64PHE HN 939 3.915 3.018 2.412
64PHE N 938 3.817 3.002 2.420
65CH6 HMN1 991 3.807 2.880 2.647
65CH6 N 990 3.717 2.836 2.649
您必须指定起始键和键数,并禁用对其他所有内容进行排序的 "last resort" 功能:
sort -g -k1,1 -s file.dat > file-sorted.dat
有关详细信息,请参阅 sort man page。