use*_*741 4 awk transpose row gawk
我试图转置一个非常长的文件,我担心它不会完全转置.
我的数据看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
我希望我的数据看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
第一根弦的长度是否会成为问题?我的文件比这长约2000行长得多.也可以将第一个字符串的名称更改为Thisis234,然后转置?
我不明白为什么它不会 - 除非你没有足够的记忆.尝试以下内容,看看是否遇到问题.
输入:
$ cat inf.txt
a b c d
1 2 3 4
. , + -
A B C D
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
跑:
$ ./mkt.sh
a 1 . A
b 2 , B
c 3 + C
d 4 - D
Run Code Online (Sandbox Code Playgroud)
积分:
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
6372 次 |
| 最近记录: |