2

Есть ли эквивалент mysql "\G" в конце запроса, но есть awk (или аналогичный), который будет печатать табличные данные из текстового файла в несколько строк с заголовком рядом с ним? Что-то, что будет делать независимо от того, сколько столбцов в файле. Например:

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

Превратится в:

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

1 ответ1

4

В одну сторону:

Содержание infile:

columnA    columnXYZ   columnBLAHBLAH
foo        bar        foobar
blah       blahblah   blahblahblah

Содержание 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
    }   
}

Запустите скрипт:

awk -f script.awk infile

И вывод:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .