Jika Anda tahu file input tidak memiliki tab, maka gunakan expand
menyederhanakan jawaban @oyss:
paste one.txt two.txt | expand --tabs=50
Jika mungkin ada tab di file masukan, Anda selalu dapat meluaskannya terlebih dahulu:
paste <(expand one.txt) <(expand two.txt) | expand --tabs=50
Anda dapat menggunakan pr
untuk melakukannya, gunakan -m
bendera untuk menggabungkan file, satu per kolom, dan -t
untuk menghilangkan tajuk, mis.
pr -m -t one.txt two.txt
keluaran:
apple The quick brown fox..
pear foo
longer line than the last two bar
last line linux
skipped a line
Lihat Juga:
- Cetak hasil perintah berdampingan
- Menggabungkan file teks berdasarkan kolom
Untuk sedikit memperluas jawaban @Hasturkun:secara default pr
hanya menggunakan 72 kolom untuk keluarannya, tetapi relatif mudah membuatnya menggunakan semua kolom yang tersedia di jendela terminal Anda:
pr -w $COLUMNS -m -t one.txt two.txt
Sebagian besar shell akan menyimpan (dan memperbarui) lebar layar terminal Anda di $COLUMNS
variabel shell, jadi kami hanya meneruskan nilai itu ke pr
untuk digunakan untuk pengaturan lebar keluarannya.
Ini juga menjawab pertanyaan @Matt:
Apakah ada cara bagi pr untuk mendeteksi lebar layar secara otomatis?
Jadi, tidak:pr
sendiri tidak dapat mendeteksi lebar layar, tetapi kami membantunya sedikit dengan meneruskan lebar terminal melalui -w
opsi.
Perhatikan bahwa $COLUMNS
adalah variabel shell, bukan variabel lingkungan, sehingga tidak diekspor ke proses anak, dan karenanya pendekatan di atas kemungkinan tidak akan berfungsi dalam skrip, hanya dalam TTY interaktif... lihat variabel lingkungan LINES dan COLUMNS hilang dalam skrip untuk pendekatan alternatif.