如何拆分列内的值并创建两个不同的 table?

how to split values inside column and create two differents table?

我想这很容易,但我不知道如何正确地制作它, 我有这种 table :

samplexxx   EH  Tred    GangSTR
dijen006_100    17  17  10,17
dijen006_75 .   .   .
dijen017_100    17,21   17,21   12,17
dijen017_75 17  21  20,20
dijen081_100    17,20   17,20   10,19
dijen081_75 17  17  18,18
dijen082_100    21,22   21,22   14,22
dijen082_75 22  22,27   21,21
dijen083_100    20  20  10,20
dijen083_75 20  20  19,19
dijen1013_100   17,20   17,20   9,19
dijen1013_75    18,20   17,20   17,19
dijen1014_100   17,18   17,18   8,17
dijen1014_75    18  18  18,18
dijen1015_100   nofile  .   7,15
dijen1015_75    16  16  15,16
dijen402_100    21,31   21,29   9,27
dijen402_75 27,31   21,38   18,36

我想创建两个新的 table,第一个值在逗号前,第二个 table 有第二个值(如果存在)。 我尝试使用 awk :

less HTT.tsv  | awk -F ',' '{print }'
    samplexxx   EH  Tred    GangSTR
    dijen006_100    17  17  10
    dijen006_75 .   .   .
    dijen017_100    17
    dijen017_75 17  21  20
    dijen081_100    17
    dijen081_75 17  17  18
    dijen082_100    21
    dijen082_75 22  22
    dijen083_100    20  20  10
    dijen083_75 20  20  19
    dijen1013_100   17
    dijen1013_75    18
    dijen1014_100   17
    dijen1014_75    18  18  18
    dijen1015_100   nofile  .   7
    dijen1015_75    16  16  15
    dijen402_100    21
    dijen402_75 27

但显然它不正确,因为某些行缺少值,有人知道吗?谢谢!

假设您希望每个输入行都在两个输出文件中表示:

$ cat tst.awk
BEGIN { FS=OFS="\t" }
NR == 1 {
    str1 = str2 = [=10=]
}
NR > 1 {
    str1 = str2 = 
    for (i=2; i<=NF; i++) {
        split($i,a,/,/)
        str1 = str1 OFS a[1]
        str2 = str2 OFS a[2]
    }
}
{
    print str1 > "foo"
    print str2 > "bar"
}

$ awk -f tst.awk file

$ head -50 foo bar
==> foo <==
samplexxx       EH      Tred    GangSTR
dijen006_100    17      17      10
dijen006_75     .       .       .
dijen017_100    17      17      12
dijen017_75     17      21      20
dijen081_100    17      17      10
dijen081_75     17      17      18
dijen082_100    21      21      14
dijen082_75     22      22      21
dijen083_100    20      20      10
dijen083_75     20      20      19
dijen1013_100   17      17      9
dijen1013_75    18      17      17
dijen1014_100   17      17      8
dijen1014_75    18      18      18
dijen1015_100   nofile  .       7
dijen1015_75    16      16      15
dijen402_100    21      21      9
dijen402_75     27      21      18

==> bar <==
samplexxx       EH      Tred    GangSTR
dijen006_100                    17
dijen006_75
dijen017_100    21      21      17
dijen017_75                     20
dijen081_100    20      20      19
dijen081_75                     18
dijen082_100    22      22      22
dijen082_75             27      21
dijen083_100                    20
dijen083_75                     19
dijen1013_100   20      20      19
dijen1013_75    20      20      19
dijen1014_100   18      18      17
dijen1014_75                    18
dijen1015_100                   15
dijen1015_75                    16
dijen402_100    31      29      27
dijen402_75     31      38      36