Saya punya file:
AC AF AN
3 0.375 8
3 0.375 8
Saya ingin hasilnya sebagai:
AC AF AN
AC=3 AF=0.375 AN=8
AC=3 AF=0.375 AN=8
Apakah ada perintah unix untuk itu?
Jawaban yang Diterima:
awk '
NR==1 {split($0,a); $1=$1}
NR>1 {for(i=1;i<=NF;i++) $i=a[i]"="$i}
1' OFS='t' yourfile
Penjelasan:
- bagi record pertama (baris header) menjadi array, berdasarkan pemisah kolom default; tetapkan kembali
$1
sehingga catatan akan ditulis dengan pemisah bidang keluaran baru - untuk rekaman yang tersisa, ulangi bidang yang mengawali setiap nilai bidang dengan elemen larik yang sesuai dengan indeks bidang, dipisahkan dengan
=
- mencetak catatan dengan tab sebagai pemisah bidang keluaran
Linux – Bagaimana Cara Membuat Patch Mengabaikan Perbedaan Indentasi Dalam Kode?
Ekspansi &Variabel Bash Brace?