Editor CSV berbasis konsol interaktif


12

Meskipun aplikasi spreadsheet untuk mengedit file CSV pada konsol digunakan untuk menjadi salah satu aplikasi pembunuh paling awal untuk komputer pribadi, hanya sedikit di antaranya dan bahkan dokumentasi yang lebih sedikit tentangnya masih dipelihara secara aktif.

Setelah melakukan pencarian ekstensif di web, halaman manual dan kode sumber, saya berakhir dengan tiga aplikasi berikut yang semuanya memiliki kelemahan mendasar:

  • sc: singkatan untuk kalkulator spreadsheet; alat yang bagus dengan vi keybindings, tetapi tidak memasukkan string yang mengandung pembatas ke dalam kutipan ketika mengekspor ke pemisah format yang terpisah dan tidak dapat mengimpor file csv dengan benar, yaitu semua angka diartikan sebagai string
  • GNU oleo: sepertinya tidak dipelihara secara aktif lagi sejak 2001 dan karenanya tidak ada paket untuk distribusi linux utama
  • teko: menawarkan paket untuk berbagai sistem operasi, tetapi menggunakan misalnya penamaan kontra-intuitif untuk sel (angka untuk baris dan kolom, yaitu 11 tampaknya dimaksudkan untuk menjadi baris 1, kolom 1) dan kode berlebihan untuk FLTK GUI

Berbagai mode Emacs juga tidak mengutip string yang mengandung pembatas dengan baik atau memerlukan lebih banyak mengetik untuk memasuki perancah tabel.

Oleh karena itu saya akan sangat berterima kasih untuk mengatasi salah satu kelemahan ini atau petunjuk apa pun terhadap editor CSV berbasis konsol lainnya. Sebenarnya tidak perlu melakukan perhitungan apa pun hanya mengedit sel atau kolom- dan baris.


Jawaban:


11

Editor CSV umumnya diharapkan mengenali angka-angka seperti itu, mengutip string hanya ketika dibutuhkan, memungkinkan pembatas dalam string yang dikutip, dan tidak menutup sel kosong. Jadi, ini di layar

1                      2          3
col-one                           col,three
                       col two
This is a long string. 1.23456789 3.14

harus berkorelasi dengan ini dalam file

1,2,3
col-one,,"col,three"
,"col two",
"This is a long string.",1.23456789,3.14

Oleo belum dipelihara selama beberapa tahun. Saya menginstal paket lama pada sistem Debian baru-baru ini dan merasa canggung dan sangat buggy. Operasi membutuhkan lebih dari jumlah penekanan tombol yang biasa. Semua string harus dikutip dan Anda harus melakukannya secara manual. Filter impor CSV tidak dapat menangani koma dalam string. Angka berpresisi panjang tidak disimpan dalam bentuk aslinya (mis. 1.23456789 menjadi 1.234567889999999). Prosesnya terkadang menjadi pelarian sehingga tidak bisa dimatikan dari baris perintah.

Tampaknya MacroCALC, Teapot, dan SC adalah satu-satunya spreadsheet CLI yang masih dipertahankan.

MacroCALC tidak dapat mengimpor atau mengekspor file CSV dengan bersih.

Teapot sedikit tidak biasa, tetapi sangat mudah digunakan dan manualnya cepat dibaca. Impor / ekspor CSV sederhana. Ini memiliki dua kebiasaan utama. Pertama, meskipun ia secara otomatis mengutip string, ia selalu mengutip semua string. Kedua, ini akan memotong / memperluas semua angka desimal ke presisi default. Antarmuka FLTK operasional, tetapi buggy.

SC cepat dan stabil. Ini beroperasi mirip dengan vi dan sekitar sebagai ramah pemula. Diperlukan program eksternal untuk mengkonversi antara format SC dan CSV. The pscalat (CSV -> SC saja) diinstal dengan SC dan karya suka begitu:

cat file.csv | psc -k -d, | sc

Setelah mengedit, simpan file dengan perintah Put , kemudian gunakan ssconvertutilitas (SC -> CSV saja) yang datang dengan Gnumerik:

ssconvert file.sc file.csv

Saya mencoba bolak-balik berbagai hal dengan psc- ssconvertdan prosesnya tampak stabil. Angka dan string ditangani dengan benar.

Metode alternatif untuk mengedit file CSV adalah menggunakan editor teks dengan plugin yang sesuai. Baik Emacs dan Vim memilikinya, meskipun versi Vim lebih cepat dan memiliki lebih banyak fitur. Ini menawarkan penyorotan, penyelarasan kolom, dan operasi blok. Saya menemukan keduanya sangat lambat dan buggy.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.