タブ (n 列) で区切られた次の種類のデータがあります。
-2 abandonar abandono abandonas abandona abandonamos abandonáis abandonan
-4 abandonado abandonada abandonados abandonadas
-2 abandona abandonos
-3 secuestrado secuestrada secuestrados secuestradas secuestraría secuestrarías secuestraríamos secuestraríais secuestrarían
列 1 の値を保持する必要がありますが、次の列の各文字列をそれぞれの行に移動する必要があります。望ましい結果は次のようになります。
-2 abandonar
-2 abandono
-2 abandonas
-2 abandona
-2 abandonamos
-2 abandonáis
-2 abandonan
-4 abandonado
-4 abandonada
-4 abandonados
-4 abandonadas
-2 abandona
-2 abandonos
-3 secuestrado
-3 secuestrada
-3 secuestrados
-3 secuestradas
-3 secuestraría
-3 secuestrarías
-3 secuestraríamos
-3 secuestraríais
-3 secuestrarían
awk
このタイプのアクションを許可する機能はありますか? 各行に印刷する必要があるものを簡単に書き出すと、次のようになります。
$awk '{print $1, $2, etc}'
特に Code: n-columns があるため、非常に面倒です。
awk
これまでのところ、データの転置に関する問題を解決するのに役立ついくつかのソリューションを試してきました。ここでこのソリューションを見つけました:
awk '{ for (i=1;i<=NF;i++ ) printf $i " " }'
と
awk '{
for (f = 1; f <= NF; f++) { a[NR, f] = $f }
}
NF > nf { nf = NF }
END {
for (f = 1; f <= nf; f++) {
for (r = 1; r <= NR; r++) {
printf a[r, f] (r==NR ? RS : FS)
}
}
}' input
ただし、おそらくおわかりのように、各列を列 1 の行の元の値にも関連付けたいのですが、これらのソリューションはデータを転置するだけなので、問題を正確に解決することはできません。希望する結果をどのように達成するかについてのアイデアはありますか?