A sintaxe é desmarcada e não examinada, então não tenho ideia do que ela faz ou se funciona. Acabei de reformatar o one-liner como um script awk autônomo e adicionei alguns espaços em branco para melhorar a legibilidade. Se o one-liner original funcionasse, isso também deveria acontecer. se não, não vai.
#! /usr/bin/awk -f
BEGIN {FS=OFS=";"}
NR==FNR {
for(i=2;i<=7;i++) if($i!="\"\"") a[$1]=a[$1] FS $i;
next
}
{
n=split(a[$1],f,FS);
if(n>7)n=7;
for(i=2;i<=n;i++) $i=f[i]
}
1
Salve-o em um arquivo (por exemplo, myscript.awk
), torne-o executável ( chmod +x myscript.awk
) e execute-o como:
./myscript.awk csv{,}