首页 > 解决方案 > 如何将偶数行的数据附加到上面的奇数行?

问题描述

我有一个文件(data.txt),如下所示(包含更多数据)

chr1    11106936    11107192    MTOR
    7   6   256 0.0234375
chr1    11106936    11107192    MTOR
    8   14  256 0.0546875
chr1    11106936    11107192    MTOR
    9   7   256 0.0273438
chr1    11106936    11107192    MTOR
    11  1   256 0.0039062
chr1    11106936    11107192    MTOR
    13  26  256 0.1015625
chr1    11106936    11107192    MTOR
    18  1   256 0.0039062
chr1    11106936    11107192    MTOR
    19  11  256 0.0429688
chr1    11106936    11107192    MTOR
    20  11  256 0.0429688
chr1    11106936    11107192    MTOR
    22  13  256 0.0507812
chr1    11106936    11107192    MTOR

我需要将偶数行号上的数据与上面的奇数行对齐,如下所示

chr1    11106936    11107192    MTOR     7   6   256 0.0234375
chr1    11106936    11107192    MTOR     8   14  256 0.0546875

标签: pythonbashfile

解决方案


使用 awk:

$ awk '{
    sub(/\r$/,"")      # just in case, remove windows line-endings
    if(NR%2)           # every odd record ...
        b=$0           # buffer them 
    else               # even records ...
        print b $0     # output buffered and current record
}' file

一些输出:

chr1    11106936    11107192    MTOR    7   6   256 0.0234375
chr1    11106936    11107192    MTOR    8   14  256 0.0546875
chr1    11106936    11107192    MTOR    9   7   256 0.0273438

推荐阅读