GNU/Linux >> Linux Esercitazione >  >> Linux

Stampa due file in due colonne?

Voglio stampare due file su due colonne:il primo file sul lato sinistro e il secondo sul lato destro.

paste non fa il lavoro, perché può solo inserire un carattere come delimitatore, quindi se le prime righe del file hanno una lunghezza diversa l'output sarà distorto:

$ cat file1
looooooooong line
line
$ cat file2
hello
world
$ paste file1 file2
looooooooong line   hello
line    world

Se fosse un comando per aggiungere spazi finali come fmt --add-spaces --width 50 il problema sarebbe risolto:

$ paste <(fmt --add-spaces --width 50 file1) file2
looooooooong line                                 hello
line                                              world

Ma non conosco un modo semplice per farlo.

Quindi, come unire e stampare più file orizzontalmente senza torcere? In realtà, voglio solo guardarli contemporaneamente.

UPD: esiste un comando per aggiungere spazi finali (ad esempio, xargs -d 'n' printf '%-50sn' )

Ma una soluzione come

$ paste <(add-trailing-spaces file1) file2

non funziona come previsto quando file1 ha meno righe di file2.

Risposta accettata:

Che dire di paste file{1,2}| column -s $'t' -tn ?

looooooooong line line  hello
line                    world
  • Questo sta dicendo column per utilizzare Tab come separatore di colonne dove lo prendiamo da paste comando che è il separatore predefinito lì se non specificato; generalmente:

    paste -d'X' file{1,2}| column -s $'X' -tn

    dove X indica qualsiasi singolo carattere. Devi scegliere quello che ha concesso che non si verificherà nei tuoi file.

  • Il -t l'opzione viene utilizzata per determinare il numero di colonne contenute nell'input.

  • Questo non aggiungerà una lunga scheda tra due file mentre altre risposte lo fanno.
  • funziona anche se c'erano righe vuote in file1 e non stamperà il secondo file nell'area di stampa di file1 , vedi sotto input/output

    File di input1:

    looooooooong line
    
    line
    

    File di input2:

    hello
    world
    

    Uscita:

    looooooooong line  hello
                       world
    line
    

Linux
  1. Confronta due colonne di file diversi e stampa se corrisponde?

  2. Lum:unire colonne da due file separati?

  3. Linee comuni tra due file?

  4. Prodotto cartesiano di due file (come insiemi di righe) in GNU/Linux

  5. Visualizza due file affiancati

Stampa i file dal tuo terminale Linux

Come leggere i file riga per riga in Bash

Come visualizzare due file affiancati in Linux

Come confrontare due file nel terminale Linux

Confronto di due file nel terminale Linux

Differenza negli spazi bianchi tra due file su Linux