Bayangkan file teks di mana setiap record csv mungkin memiliki jumlah bidang yang berbeda. Tugasnya adalah menulis kode untuk menampilkan berapa banyak bidang yang ada di setiap catatan file. Anda dapat menganggap tidak ada baris tajuk dalam file dan dapat membaca dari file atau input standar, seperti yang Anda pilih.
Anda dapat mengasumsikan versi rfc4180 untuk aturan csv yang akan saya jelaskan di bawah ini untuk definisi setiap baris file. Berikut ini adalah versi ringan dari bagian yang relevan dari spesifikasi:
Definisi Format CSV
Setiap catatan terletak pada jalur yang terpisah, dibatasi oleh pemutusan jalur (CRLF). Sebagai contoh:
aaa,bbb,ccc CRLF zzz,yyy,xxx CRLFCatatan terakhir dalam file mungkin atau mungkin tidak memiliki jeda baris akhir. Sebagai contoh:
aaa,bbb,ccc CRLF zzz,yyy,xxx
(Aturan 3. tidak berlaku dalam tantangan ini)
Dalam setiap catatan, mungkin ada satu atau lebih bidang, dipisahkan dengan koma. Spasi dianggap sebagai bagian dari bidang dan tidak boleh diabaikan.
Setiap bidang mungkin atau mungkin tidak dilampirkan dalam tanda kutip ganda. Jika bidang tidak disertai dengan tanda kutip ganda, maka tanda kutip ganda mungkin tidak muncul di dalam bidang. Sebagai contoh:
"aaa","bbb","ccc" CRLF zzz,yyy,xxxBidang yang berisi penghentian baris (CRLF), tanda kutip ganda, dan koma harus dilampirkan dalam tanda kutip ganda. Sebagai contoh:
"aaa","b CRLF bb","ccc" CRLF zzz,yyy,xxxJika tanda kutip ganda digunakan untuk menyertakan bidang, maka tanda kutip ganda yang muncul di dalam bidang harus diloloskan dengan mendahului dengan tanda kutip ganda lainnya. Sebagai contoh:
"aaa","b""bb","ccc"
Contoh
Memasukkan:
,"Hello, World!"
"aaa","b""bb","ccc"
zzz,yyy,
"aaa","b
bb","ccc","fish",""
Harus memberikan output:
2, 3, 3, 5
Anda dapat memberikan nilai output dengan cara apa pun yang menurut Anda paling nyaman.
Perpustakaan
Anda dapat menggunakan perpustakaan apa pun yang Anda suka.
Sejauh ini jawaban yang luar biasa tetapi kami kehilangan jawaban baris perintah / bash yang akan sangat keren.