Mám soubor:
AC AF AN
3 0.375 8
3 0.375 8
Chci výstup jako:
AC AF AN
AC=3 AF=0.375 AN=8
AC=3 AF=0.375 AN=8
Existuje na to nějaký unixový příkaz?
Přijatá odpověď:
awk '
NR==1 {split($0,a); $1=$1}
NR>1 {for(i=1;i<=NF;i++) $i=a[i]"="$i}
1' OFS='t' yourfile
Vysvětlení:
- rozdělte první záznam (řádek záhlaví) do pole na základě výchozího oddělovače polí; znovu přiřadit
$1
takže záznam bude zapsán s novým oddělovačem výstupních polí - u zbývajících záznamů použijte smyčku přes pole a před každou hodnotu pole vložte prvek pole odpovídající indexu pole, oddělený znakem
=
- tiskněte záznamy s tabulátorem jako oddělovačem výstupních polí