ヘッダーが正しくないファイルが2つあります。

ヘッダーが正しくないファイルが2つあります。

File1とFile2という2つのファイルがあります。

  • File1にはヘッダーのみがあります。

    Field2 Field1 Field3
    

そして

  • File2にはヘッダーとデータもあります。

    Field3 Field2 Field1
    ABC    DEF    GHI
    JKL    MNO    PQRS
    

次のファイルで2つのヘッダーフィールドを同期する必要があります。

ファイル1.txt

Field1 Field2 Field3

ファイル2.txt

Field1 Field2 Field3
GHI    DEF    ABC
PQRS   MNO    JKL

ベストアンサー1

awk '
    NR==FNR {
        # read the first file, save the desired field order
        n = split($0, field_order)
        next
    } 
    FNR==1 {
        # read the first line of the second file
        # store the mapping of field name to existing column number
        n = split($0, header)
        for (i=1; i<=n; i++)
            current_field_order[header[i]] = i
    }
    {
        # output the fields in the desired order
        for (i=1; i<=n; i++)
            printf "%s%s", $(current_field_order[field_order[i]]), OFS
        print ""
    }
' file1 file2 

これにより、列の並べ替えが中断されます。出力をパイプしてきれいに| column -tすることができます。

おすすめ記事