使用 awk 重新设置文本格式



我有一个这种格式的大文件(我有csv和文本格式,第一列是ID(:

9   KIDL1   1
9   KIDL1   1
9   KIDL2   0
9   KIDL2   1
9   KIDL3   1
9   KIDL3   1

并希望将其更改为:

KIDL1   KIDL2   KIDL3
9   1/1     0/1     1/1

是否可以使用 awk 命令或相关程序?

不是完美的解决方案。 但我设法根据提供的输入生成所需的输出。

awk '{a[$1" "$2]=$3"/"a[$1" "$2]} END {for (i in a)  {b=b" "i; c=c" "a[i];} {gsub(/ +[0-9]/, " ",b); gsub(// +/, " ",c ) }  print b"n"$1,c }'

演示:

$awk '{a[$1" "$2]=$3"/"a[$1" "$2]} END {for (i in a)  {b=b" "i; c=c" "a[i];} {gsub(/ +[0-9]/, " ",b); gsub(// +/, " ",c ) }  print b"n"$1,c }' < file1.txt
KIDL1  KIDL2  KIDL3
9  1/1 1/0 1/1/
$

相关内容

  • 没有找到相关文章

最新更新