GNU/Linux >> Belajar Linux >  >> Linux

Cetak Dua File Dalam Dua Kolom?

Saya ingin mencetak dua file dalam dua kolom — file pertama di sisi kiri dan kedua di sisi kanan.

paste tidak berfungsi, karena hanya dapat menyisipkan karakter sebagai pembatas, jadi jika baris file pertama memiliki panjang yang berbeda, output akan diputar:

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

Jika itu adalah perintah untuk menambahkan spasi tambahan seperti fmt --add-spaces --width 50 masalah akan terpecahkan:

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

Tapi saya tidak tahu cara sederhana untuk melakukan ini.

Jadi bagaimana cara menggabungkan dan mencetak beberapa file secara horizontal tanpa memutar? Sebenarnya, saya hanya ingin melihatnya secara bersamaan.

UPD: perintah untuk menambahkan spasi tambahan memang ada (misalnya, xargs -d 'n' printf '%-50sn' )

Tapi solusi seperti

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

tidak berfungsi seperti yang diharapkan ketika file1 memiliki lebih sedikit baris daripada file2.

Jawaban yang Diterima:

Bagaimana dengan paste file{1,2}| column -s $'t' -tn ?

looooooooong line line  hello
line                    world
  • Ini memberitahu column untuk menggunakan Tab sebagai pemisah kolom tempat kami mengambilnya dari paste perintah yang merupakan pemisah default di sana jika tidak ditentukan; umumnya:

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

    dimana X berarti setiap karakter tunggal. Anda harus memilih salah satu yang diberikan yang tidak akan muncul di file Anda.

  • -t option digunakan untuk menentukan jumlah kolom yang berisi input.

  • Ini tidak akan menambahkan tab panjang di antara dua file sementara jawaban lainnya menambahkan.
  • ini akan berfungsi bahkan jika ada baris kosong di file1 dan tidak akan mencetak file kedua di area cetak file1 , lihat di bawah input/output

    Masukan file1:

    looooooooong line
    
    line
    

    Masukan file2:

    hello
    world
    

    Keluaran:

    looooooooong line  hello
                       world
    line
    

Linux
  1. Lum – Menggabungkan Kolom Dari Dua File Terpisah?

  2. Gabungkan Dua File Baris demi Baris Dengan Simbol Pipa Tiga Pembatas “|||”?

  3. Produk Cartesian dari dua file (sebagai kumpulan baris) di GNU/Linux

  1. 5 Alat Baris Perintah untuk Menemukan File dengan Cepat di Linux

  2. unix - hitungan kolom dalam file

  3. Bagaimana cara menggabungkan dua file CSV?

  1. Bandingkan Dua Kolom File Yang Berbeda Dan Cetak Jika Cocok?

  2. Cetak Semua File Dalam Folder?

  3. Garis Umum Antara Dua File?