私にテーブルがあります。
ID Comment Statement
1 hi hello
2 hi hello
1 cya bye
1 k ok
2 kk ok
awkを使用して以下に示す結果を生成するにはどうすればよいですか?したがって、IDは属性になり、ステートメントと同じ順序で保持されます。
1 2
hi hi
cya N/A
k kk
ベストアンサー1
これにより、目的の出力が生成されます。
awk '
NR>1 {
ids[$1]
if (s!=$3) c++
statements[c]=$3
s=$3
comments[$3,$1]=$2
}
END {
for (id in ids)
printf "%s\t", id
print ""
for (i=1; i<=c; i++) {
for (id in ids) {
comment = (comments[statements[i],id] ? comments[statements[i],id] : "n/a")
printf "%s\t", comment
}
print ""
}
}
' file
秩序を維持するには、いくつかのことを覚えておく必要があります。