Kadang-kadang, saya mendapatkan daftar terpisah sebagai input tab, yang tidak cukup selaras, misalnya
var1 var2 var3
var_with_long_name_which_ruins_alignment var2 var3
Apakah ada cara mudah untuk membuat mereka selaras?
var1 var2 var3
var_with_long_name_which_ruins_alignment var2 var3
command-line
text-processing
csv
tabulation
Elazar Leibovich
sumber
sumber
column -t
?columns -t
bertindak pada spasi umum. Untuk bekerja dengan tab saja , gunakancolumn -t -s $'\t'
Jawaban:
Jadi jawabannya menjadi:
Perhatikan bahwa ini memecah kolom di spasi putih apa pun , bukan hanya tab. Jika Anda ingin membagi hanya pada tab, gunakan:
The
-s $'\t'
set pembatas untuk tab saja dan-n
mempertahankan kosong kolom (tab yang berdekatan).PS: Hanya ingin menunjukkan bahwa kreditnya juga untuk Alex . Petunjuk asli diberikan olehnya sebagai komentar untuk pertanyaan, tetapi tidak pernah diposting sebagai jawaban.
sumber
column
:)column
tampaknya gagal ketika menemukan sel-sel kosong. Lihat posting ini . Tergantung pada versi yangcolumn
Anda miliki, Anda mungkin dapat menentukan-n
opsi untuk memperbaikinya.column -t -s $'\t'
.Berikut ini skrip untuk melakukannya:
aligntabs.pl
pemakaian
sumber
pr
dannl
adalah dua alat dasar untuk format, dan setelah ituawk
,sed
,perl
, dllcolumn
column -t -s $'\t'
tampaknya melakukan pekerjaan itu.Untuk penghentian tab manual:
expand -t 42,48
Untuk penghentian tab otomatis, seperti yang disarankan oleh alex :
column -t
(
expand
ada di semua sistem POSIX.column
adalah utilitas BSD, tersedia di banyak distribusi Linux juga.)sumber
Sebagai lanjutan dari komentar Peter.O yang ingin saya selaraskan (tab delimited data, TSV), frasa ini bekerja dengan sangat baik:
sumber
Penjelasan:
Sed akan menambahkan spasi di antara pembatas kosong
Kolom akan menambahkan jarak yang sama antara kolom
menjadi
Less akan membuka output di penampil file. -N dan -S akan menambahkan nomor baris dan menonaktifkan pembungkus masing-masing
sumber
Dengan Miller ( http://johnkerl.org/miller/doc ) Anda memiliki hasil cetak yang cantik.
Menjalankan
memiliki
sumber