awk: Tablo verilerini birden fazla satırda yazdırmak için MySQL'in “\ G” eşdeğeri


2

Sorgu sonunda mysql'nin "\ G" ye eşdeğer var mı, ancak bir metin dosyasındaki tablo verilerini, başlığının yanında birden fazla satırda basacak olan awk (veya benzeri) var mı? Dosyada kaç tane sütun olursa olsun yapacak bir şey. Örneğin:

columnA    columnXYZ   columnBLAHBLAH
foo        bar        foobar
blah       blahblah   blahblahblah
[...]

Dönüşecek:

************ 1. row ***********
       columnA: foo
     columnXYZ: bar
columnBLAHBLAH: foobar
************ 2. row ***********
       columnA: blah
     columnXYZ: blahblah
columnBLAHBLAH: blahblahblah
[...]

Yanıtlar:


4

Tek yön:

İçeriği infile:

columnA    columnXYZ   columnBLAHBLAH
foo        bar        foobar
blah       blahblah   blahblahblah

İçeriği script.awk:

FNR == 1 { 
    split( $0, header )
}

FNR > 1 { 
    printf "************ %d. row ************\n", FNR-1
    for ( i = 1; i <= NF; i++ ) { 
        printf "%14s: %-14s\n", header[ i ], $i
    }   
}

Komut dosyasını çalıştırın:

awk -f script.awk infile

Ve çıktı:

************ 1. row ************
       columnA: foo           
     columnXYZ: bar           
columnBLAHBLAH: foobar        
************ 2. row ************
       columnA: blah                                                                                                                                                                                                                         
     columnXYZ: blahblah                                                                                                                                                                                                                     
columnBLAHBLAH: blahblahblah
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.