我想這很容易,但我不知道如何正確地制作它,我有這種桌子:
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
我想創建兩個新表,一個在逗號之前具有第一個值,另一個具有第二個值(如果存在)的表。我嘗試使用 awk :
less HTT.tsv | awk -F ',' '{print $1}'
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
但顯然這是不正確的,因為某些行缺少值,有人知道嗎?謝謝!
uj5u.com熱心網友回復:
假設您希望每個輸入行都在兩個輸出檔案中表示:
$ cat tst.awk
BEGIN { FS=OFS="\t" }
NR == 1 {
str1 = str2 = $0
}
NR > 1 {
str1 = str2 = $1
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/408878.html
標籤:
下一篇:獲取$@中的下一個元素
