gpt4 book ai didi

awk - 使用 gawk 转置列和行

转载 作者:行者123 更新时间:2023-12-04 02:35:28 25 4
gpt4 key购买 nike

我正在尝试转置一个非常长的文件,但我担心它不会完全转置。

我的数据看起来像这样:

Thisisalongstring12345678   1   AB  abc 937 4.320194
Thisisalongstring12345678 1 AB efg 549 0.767828
Thisisalongstring12345678 1 AB hi 346 -4.903441
Thisisalongstring12345678 1 AB jk 193 7.317946

我希望我的数据看起来像这样:
Thisisalongstring12345678 Thisisalongstring12345678 Thisisalongstring12345678 Thisisalongstring12345678
1 1 1 1
AB AB AB AB
abc efg hi jk
937 549 346 193
4.320194 0.767828 -4.903441 7.317946

第一个字符串的长度会被证明是一个问题吗?我的文件比这大约 2000 行长得多。也可以将第一个字符串的名称更改为Thisis234,然后转置?

最佳答案

我不明白为什么它不会 - 除非你没有足够的内存。试试下面的方法,看看你是否遇到了问题。

输入:

$ cat inf.txt 
a b c d
1 2 3 4
. , + -
A B C D

awk程序:
$ cat mkt.sh
awk '
{
for(c = 1; c <= NF; c++) {
a[c, NR] = $c
}
if(max_nf < NF) {
max_nf = NF
}
}
END {
for(r = 1; r <= NR; r++) {
for(c = 1; c <= max_nf; c++) {
printf("%s ", a[r, c])
}
print ""
}
}
' inf.txt

跑:
$ ./mkt.sh 
a 1 . A
b 2 , B
c 3 + C
d 4 - D

学分:
  • http://www.chemie.fu-berlin.de/chemnet/use/info/gawk/gawk_12.html#SEC121

  • 希望这可以帮助。

    关于awk - 使用 gawk 转置列和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10003233/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com