Ich habe eine Datei:
AC AF AN
3 0.375 8
3 0.375 8
Ich möchte die Ausgabe als:
AC AF AN
AC=3 AF=0.375 AN=8
AC=3 AF=0.375 AN=8
Gibt es dafür einen Unix-Befehl?
Akzeptierte Antwort:
awk '
NR==1 {split($0,a); $1=$1}
NR>1 {for(i=1;i<=NF;i++) $i=a[i]"="$i}
1' OFS='t' yourfile
Erklärung:
- teilt den ersten Datensatz (Kopfzeile) in ein Array auf, basierend auf dem standardmäßigen Feldtrenner; weisen Sie
$1
neu zu damit der Datensatz mit dem neuen Ausgabefeld-Trennzeichen geschrieben wird - Für die verbleibenden Datensätze durchlaufen Sie die Felder, indem Sie jedem Feldwert das Array-Element voranstellen, das dem Feldindex entspricht, getrennt durch
=
- Datensätze mit Tabulator als Ausgabefeldtrenner drucken