GNU/Linux >> Belajar Linux >  >> Linux

Salin Header Di Setiap Sel Barisnya?

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
  1. Salin Isi File Ke Clipboard Tanpa Menampilkan Isinya?

  2. Kenapa Setiap Program Atau Layanan Memiliki Akun Sendiri Di /etc/passwd?

  3. Bagaimana cara mengurutkan file, berdasarkan nilai numeriknya untuk suatu bidang?

  1. Bagaimana cara mengompres banyak folder, masing-masing ke dalam arsip zipnya sendiri?

  2. firefox:warna bidang masukan

  3. Bagaimana cara menyalin file secara transaksional?

  1. Cara menyalin database MySQL

  2. Pisahkan File Dengan Jumlah Baris Termasuk Header Di Masing-Masing?

  3. Perintah cp Linux