У меня есть следующий тип данных, разделенных вкладками (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, а эти решения просто переставляют данные. Любые идеи о том, как я достигну желаемого результата?