Apa cara paling efisien untuk mengonversi data yang dipisahkan tab seperti ini:
a b c d cat
NULL NULL NULL NULL NULL
NULL NULL NULL d d
NULL NULL c NULL c
NULL NULL c d c; d
NULL b NULL NULL b
NULL b NULL d b; d
NULL b c NULL b; c
NULL b c d b; c; d
a NULL NULL NULL a
a NULL NULL d a; d
a NULL c NULL a; c
a NULL c d a; c; d
a b NULL NULL a; b
a b NULL d a; b; d
a b c NULL a; b; c
a b c d a; b; c; d
Sesuatu yang dekat dengan ini:
a | b | c | d | cat
-----+------+------+------+-----------
NULL | NULL | NULL | NULL | NULL
NULL | NULL | NULL | d | d
NULL | NULL | c | NULL | c
NULL | NULL | c | d | c; d
NULL | b | NULL | NULL | b
NULL | b | NULL | d | b; d
NULL | b | c | NULL | b; c
NULL | b | c | d | b; c; d
a | NULL | NULL | NULL | a
a | NULL | NULL | d | a; d
a | NULL | c | NULL | a; c
a | NULL | c | d | a; c; d
a | b | NULL | NULL | a; b
a | b | NULL | d | a; b; d
a | b | c | NULL | a; b; c
a | b | c | d | a; b; c; d
Saat ini saya menggunakan Notepad ++ sebagai berikut:
- Ubah tab menjadi spasi
- Sejajarkan data secara manual
- Gunakan mode kolom untuk memasukkan pipa
Langkah kedua adalah yang paling membosankan dan saya lebih suka setidaknya bagian ini otomatis.
Catatan: Saya menggunakan browser saat bekerja dan terkadang saya memiliki editor teks yang terbuka di sampingnya. Solusi yang efisien adalah yang paling sedikit membutuhkan usaha. Saya bisa menggunakan:
- Notepad ++
- Editor teks umum dengan dukungan regexp find / replace
- JavaScript diketik di dalam konsol browser
- Layanan web online
- PHP pada baris perintah (
php -a
)
conversion
csv
text-formatting
ascii
Salman A
sumber
sumber
awk
skrip sederhana .{{(⊃⍵)⍪⍉⍪↑¨↓⍉↑1↓⍵}s¨'⎕T'⎕T¨(s←1↓¨⊢⊂⍨⊢=⊃)¯1⌽⍵}
tampaknya cukup bagus untuk dikerjakan, eh?)Jawaban:
Bagaimana cara mengonversi nilai yang dipisahkan tab ke tabel ASCII?
Saya menggunakan Text Tables Generator untuk tugas semacam ini.
Saya menempelkan data Anda di halaman itu dan itu membuat tabel berikut:
Anda kemudian dapat menyalin output ini (generator telah melakukan sebagian besar kerja keras), tempel ke notepad ++ dan bersihkan sesuai kebutuhan.
sumber
Jika Anda membutuhkan solusi baris perintah, Anda juga dapat menggunakan pandoc dengan filter pandoc-placetable .
Tempatkan meja Anda
foo.txt
dan jalankan:Yang menghasilkan sebagai berikut
output.md
:Untuk membaca dari STDIN, tinggalkan
--file
argumen. Untuk mencetak ke STDOUT, tinggalkan-o
argumen.sumber
Gagasan ruslan untuk menggunakan perintah Unix / Linux
column
adalah ide yang bagus, tetapi baris perintah yang diberikan dalam jawaban mereka tidak cukup berhasil. Pertama-tama,column
tidak mengenali\t
(atau\\t
) pada baris perintah sebagai tab. Jika sudahbash
, Anda bisa melakukannyaKalau tidak, Anda bisa melakukannya
Tetapi itu pun tidak menjawab pertanyaan. Anda bisa mendapatkan bilah vertikal dengan melakukan
yang menghasilkan output seperti
Menambahkan garis putus-putus setelah header secara manual tidak terlalu membosankan.
Jika Anda tidak memiliki akses ke sistem Unix / Linux lengkap, Anda dapat menggunakan Cygwin atau salah satu dari Unix-suka lainnya untuk ini.
sumber
set ts=4
pengaturan Vim saya ).