私はファイルを持っています:
AC AF AN
3 0.375 8
3 0.375 8
次のような出力が必要です:
AC AF AN
AC=3 AF=0.375 AN=8
AC=3 AF=0.375 AN=8
そのためのUNIXコマンドはありますか?
承認された回答:
awk '
NR==1 {split($0,a); $1=$1}
NR>1 {for(i=1;i<=NF;i++) $i=a[i]"="$i}
1' OFS='t' yourfile
説明:
- デフォルトのフィールドセパレータに基づいて、最初のレコード(ヘッダー行)を配列に分割します。
$1
を再割り当てします レコードが新しい出力フィールドセパレータで書き込まれるようにします - 残りのレコードについては、フィールドをループして、各フィールド値の前に、
=
で区切られたフィールドインデックスに対応する配列要素を追加します。 - 出力フィールドの区切り文字としてタブを使用してレコードを印刷する