Ho un file:
AC AF AN
3 0.375 8
3 0.375 8
Voglio l'output come:
AC AF AN
AC=3 AF=0.375 AN=8
AC=3 AF=0.375 AN=8
C'è qualche comando unix per questo?
Risposta accettata:
awk '
NR==1 {split($0,a); $1=$1}
NR>1 {for(i=1;i<=NF;i++) $i=a[i]"="$i}
1' OFS='t' yourfile
Spiegazione:
- dividi il primo record (riga di intestazione) in un array, in base al separatore di campo predefinito; riassegna
$1
in modo che il record venga scritto con il nuovo separatore di campo di output - per i record rimanenti, scorrere i campi anteponendo ogni valore di campo con l'elemento dell'array corrispondente all'indice del campo, separato da
=
- stampa record con tab come separatore del campo di output