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.