Ada banyak skenario ketika Anda perlu menganalisis, memodifikasi, dan memproses berkas-berkas besar dengan cepat, baik dalam jumlah maupun ukurannya. Namun, berkas sering kali berupa berkas teks Comma Separated Values (CSV). Membukanya dengan aplikasi spreadsheet standar seperti Excel, LibreOffice, atau OpenOffice akan membebani memori mesin. Selain itu, memproses sejumlah besar berkas dalam satu batch sering gagal setelah beberapa jam karena anomali berkas yang tak terduga.
Anda akhirnya menghabiskan banyak waktu dengan layar yang membeku, restart, dan menunggu lama.
Namun, sebagian besar tugas ini dapat dilakukan hanya dengan beberapa baris kode. Terlebih lagi, memahami beberapa baris perintah shell sederhana dapat sangat membantu menghemat waktu dan mengurangi frustrasi.
Artikel ini akan memberikan ikhtisar beberapa perintah shell yang saya gunakan hampir setiap hari. Semoga Anda menemukannya bermanfaat.
Catatan Singkat
Perhatikan bahwa ada berbagai jenis shell (bash, zsh, ...), dengan bash sebagai yang paling umum karena menjadi shell bawaan di OS X dan distribusi Linux utama. Zsh (dan Oh My Zsh) adalah alternatif yang populer dan kuat. Perintah shell yang disertakan dalam posting blog ini telah diuji pada bash di OS X (macOS) dan seharusnya berfungsi pada shell dan lingkungan lain.
Semua contoh berikut didasarkan pada adult dataset dari repositori UCI Machine Learning yang juga dikenal sebagai dataset "Census Income" dan tersedia di sini. Dataset ini umum digunakan untuk memprediksi apakah pendapatan melebihi \$50K/tahun berdasarkan data sensus. Dengan 48842 baris dan 14 atribut, ini bukan dataset besar, tetapi cukup untuk mengilustrasikan contoh-contohnya. Meskipun data disimpan dengan ekstensi .data, ini adalah berkas CSV yang terformat baik. Silakan unduh datasetnya untuk mengikuti!
Menghitung dengan wc
Diberi sebuah berkas berbasis teks baru, Anda ingin tahu berapa banyak baris yang dikandungnya. Ini dapat dilakukan dengan perintah word count wc -l:
Yang memberi tahu bahwa berkas adult.data berisi 32562 baris. Flag -l memberi tahu wc untuk menghitung baris. Namun Anda juga dapat menggunakan wc untuk menghitung kata dengan flag -w.
Perintah wc juga dapat menghitung jumlah berkas dalam sebuah direktori dengan menggunakan keluaran perintah ls -l sederhana sebagai masukan ke wc. Menggunakan keluaran suatu perintah sebagai masukan ke perintah lain dengan simbol pipa | adalah pola shell yang berguna yang disebut pipelining. Anda akan melihatnya di beberapa contoh sepanjang artikel ini.
Sekarang anggap Anda memiliki folder dengan banyak berkas. Perintah berikut akan memberi tahu Anda persis berapa banyak berkas yang dikandungnya:
Ada banyak aplikasi lain untuk wc jika Anda mulai menambahkan wildcard dan subfolder.
Mari kembali ke berkas adult.data Anda dan lihat baris-baris pertama dengan perintah head. Secara bawaan, head menampilkan 10 baris; Anda membatasi keluaran ke 2 baris pertama menggunakan flag -n.
Dan Anda memperhatikan bahwa berkas tersebut tidak memiliki baris header. Nama kolom tidak ada di dalam berkas. Anda dapat menambahkan baris header itu dengan menggabungkan dua berkas menggunakan perintah cat.
Menggabungkan Berkas dengan cat
Perintah cat mencetak isi berkas ke keluaran standar (terminal Anda). Ini juga dapat digunakan untuk menggabungkan serangkaian berkas. Perintah cat file_1.csv file_2.csv > target_file.csv akan menggabungkan isi file_1.csv dan file_2.csv ke target_file.csv, menambahkan file_2.csv di akhir file_1.csv.
Berkas header tidak ada di dataset asli dan Anda perlu membuatnya. Untuk melakukannya, Anda melakukan echo daftar nama kolom yang dipisahkan koma ke berkas header.csv.
$ echo"age,workclass,fnlwgt,education,education-num,marital-status,occupation,relationship,race,sex,capital-gain,capital-loss,native-country,class"> header.csvDidukung oleh
Dalam contoh ini, Anda menggunakan karakter pengalihan shell > untuk membuang keluaran cat ke berkas adult.csv. > akan membuat berkas atau mengganti seluruh isinya jika berkas sudah ada. Menggandakan simbol >> akan menambahkan konten baru ke berkas yang sudah ada tanpa menghapus isinya.
Sekarang mari tambahkan berkas header.csv di awal berkas adult.data. Pada saat yang sama, Anda mengganti nama adult.data menjadi adult.csv karena, pada akhirnya, ini adalah berkas berformat CSV.
$ cat header.csv adult.data > adult.csv
Didukung oleh
Periksa bahwa baris pertama adult.csv berisi nama kolom dengan:
Skenario penambangan data yang sering terjadi lainnya adalah ketika berkas rusak atau terformat buruk, misalnya mengandung karakter non-UTF-8 atau koma yang salah tempat. Anda dapat memperbaiki berkas tersebut tanpa benar-benar membukanya menggunakan perintah sed.
Pola umum sed adalah
$ sed"s/<string to replace>/<string to replace it with>/g"<source_file>><target_file>.Didukung oleh
Dataset adult.csv menggunakan karakter ? untuk menandai nilai yang hilang. Anda dapat mengganti karakter tersebut dengan nilai bawaan yang lebih sesuai menggunakan sed. String kosong lebih disukai sebagai penanda nilai yang hilang karena akan ditafsirkan sebagai nilai NaN saat memuat data ke dalam Pandas DataFrame.
Ini memberi Anda hitungan 2399 baris dengan setidaknya satu kolom yang memiliki nilai hilang yang ditandai dengan ?. Perintah berikut akan mengganti semua kolom dengan ? menjadi string kosong. Semua sel yang hanya berisi ? diikuti spasi kini akan benar-benar kosong.
$ sed"s/, ?,/,,/g" adult.csv > adult.csvDidukung oleh
Perhatikan bahwa Anda menggunakan pembatas kolom , dalam string sumber dan target untuk menghindari penggantian tanda tanya yang sah yang mungkin ada di tempat lain dalam dataset.
Membuat Subset dari Berkas Besar
Bayangkan sekarang Anda berurusan dengan berkas yang berisi lebih dari 30 juta baris. Saat Anda menyusun skrip Python atau R, Anda ingin menguji alur kerja pada sampel dari berkas besar asli dan tidak harus memuat seluruh dataset ke memori. Anda dapat menggunakan kombinasi head dan tail untuk membuat subsampel dari dataset asli.
head menampilkan bagian awal berkas;
tail menampilkan bagian akhir berkas
Seperti yang telah Anda lihat, perintah-perintah ini menerima flag -n, singkatan dari --lines, yang membatasi jumlah baris pada keluaran. tail juga menerima flag -f di mana f adalah --follow yang menampilkan data yang ditambahkan ketika baris ditambahkan ke akhir berkas. Ini sangat nyaman untuk memantau berkas log saat skrip Anda berjalan menggunakan tail -f <logfile>.
Dengan menggabungkan simbol pipa | dengan head dan tail, Anda dapat mengekstrak sejumlah baris dari dalam berkas sumber dan mengekspor isinya ke berkas subset. Misalnya, untuk mengekstrak 20 baris mulai dari baris ke-100:
$ head-n120 adult.csv |tail-n20> adult_sample.csvDidukung oleh
Perhatikan bahwa Anda terlebih dahulu mengambil first_line + number_of_lines dengan head lalu tailnumber_of_lines-nya. Perintah subset generik adalah:
$ head -n <total_lines><source_file>| tail -n <number_of_lines>><target_file>Didukung oleh
di mana total_lines = first_line + number_of_lines. Namun, berkas sampel baru Anda tidak lagi berisi baris header. Kita sudah tahu cara menambahkan kembali header ke berkas subset menggunakan cat untuk menggabungkan berkas subset dan berkas header.csv yang dibuat sebelumnya:
$ cat adult_sample.csv header.csv > adult_sample_with_header.csv
Didukung oleh
Perhatikan bahwa Anda tidak menggunakan nama berkas sumber adult\_sample.csv sebagai nama berkas target, melainkan membuat berkas baru berjudul adult\_sample\_with\_header.csv. Menggunakan nama yang sama dengan salah satu sumber sebagai target saat memakai cat akan menghasilkan isi berkas yang tak terduga. Lebih baik membuat berkas baru sebagai keluaran perintah cat.
Menemukan Duplikasi dengan uniq
Dengan perintah uniq Anda dapat menemukan baris yang berulang berdampingan dalam sebuah berkas. uniq memiliki beberapa flag, yang paling berguna antara lain:
uniq -c: menambahkan jumlah pengulangan ke setiap baris;
uniq -d: hanya menampilkan baris duplikat; dan
uniq -u: hanya menampilkan baris unik.
Namun, uniq bukan perintah yang cerdas. Baris berulang tidak akan terdeteksi jika tidak berdampingan. Artinya, Anda perlu terlebih dahulu melakukan sort pada berkas. Perintah ini menghitung jumlah baris yang terduplikasi dalam adult.csv.
dan menunjukkan bahwa ada 23 duplikasi. Perintah berikut mengambil keluaran semua baris dengan jumlah pengulangan yang ditambahkan, mengurutkan secara terbalik, dan menampilkan 3 duplikasi teratas:
Ada banyak opsi kuat yang dapat diperoleh dengan mengombinasikan sort dan uniq dengan berbagai flag. Gunakan man sort dan man uniq untuk mengeksplorasi perintah-perintah ini lebih lanjut.
Memilih Kolom dengan cut
Hal hebat tentang berkas CSV dan perintah shell adalah Anda juga dapat bekerja pada tingkat kolom dengan menggunakan cut untuk memilih kolom tertentu. cut memiliki dua flag utama: -d untuk menentukan pembatas kolom dan -f untuk menentukan kolom yang ingin Anda olah. Dalam contoh berikut, Anda menggunakan cut untuk mencari jumlah nilai unik yang diambil oleh variabel kategorikal workclass (kolom 2).
Pertama pilih kolom workclass dan arahkan ke head untuk memverifikasi bahwa Anda mengambil kolom yang benar:
$ cut-d","-f2 adult.csv |head-3
workclass
State-gov
Self-emp-not-incDidukung oleh
Sekarang, untuk menghitung nilai unik, Anda mengurutkan keluaran cut dan mengarahkannya ke uniq -c, seperti berikut:
Yang memberi tahu Anda, misalnya, bahwa ada 1837 nilai null, dan bahwa kelas utama sejauh ini adalah kelas Private dengan 22969 kemunculan.
Baris perintah di atas mirip dengan metode value_counts() yang diterapkan pada DataFrame yang berisi data adult.csv.
Looping
Sejauh ini, Anda sebagian besar bekerja pada satu berkas. Untuk mengganti nama, memproses, atau mentransfer banyak berkas, Anda sebaiknya menambahkan loop ke perangkat shell kita. Format generik loop di bash adalah:
Mari kita praktikkan. Bayangkan Anda memiliki 1000 berkas dengan spasi pada nama berkasnya dan Anda ingin mengganti setiap spasi dengan garis bawah "_".
replace_source=' 'replace_target='_'forfilenamein ./*.csv;donew_filename=${filename//$replace_source/$replace_target}mv"$filename""$new_filename"doneDidukung oleh
Dalam contoh ini,
Anda terlebih dahulu mendeklarasikan dua variabel: replace_source dan replace_target sebagai penampung untuk karakter spasi dan garis bawah
Anda melakukan loop pada semua berkas *.csv di folder saat ini
untuk setiap filename, Anda membuat new_filename dengan mengganti setiap spasi menjadi garis bawah
dan Anda mengganti nama berkas dari nama saat ini ke nama baru dengan perintah mv
Faktanya, Anda tidak hanya menggunakan shell untuk melakukan loop melalui berkas dalam direktori, tetapi juga telah membuat variabel.
Variabel
Anda akan menutup pengantar perintah shell ini dengan variabel. Pembuatan variabel di shell cukup dilakukan dengan
$ varname='<a string>'
$ varname=a numberDidukung oleh
Misalnya:
$ varname='Hello world'
$ varname=123.4Didukung oleh
Perhatikan bahwa tidak ada spasi di sekitar tanda '='. var = '<a string>' tidak akan berfungsi. Untuk mengembalikan nilai variabel, cukup lakukan echo:
Menulis loop dan menggunakan variabel membuka pintu bagi manipulasi berkas yang lebih kompleks dan menjadi gerbang menuju penulisan skrip shell yang berada di luar cakupan artikel pengantar ini. Namun, penulisan skrip shell cukup sederhana jika Anda mulai dari yang kecil dan meningkat seiring bertambahnya kepercayaan diri.
Kesimpulan
Baris perintah shell sangat berguna dalam pekerjaan harian Anda sebagai ilmuwan data. Ada banyak contoh dan kasus penggunaan lain yang dapat dieksplorasi. Dan seperti yang akan Anda lihat, hampir selalu ada berbagai cara untuk mencapai hasil tertentu menggunakan beragam perintah shell dan flag terkait. Dalam kasus seperti itu, menjaga tetap sederhana selalu menjadi strategi yang menang.
Semoga contoh yang disajikan di sini membantu Anda mengintegrasikan perintah shell ke dalam perangkat pemrosesan data Anda. Jangan ragu untuk menghubungi dan berbagi trik shell Anda dengan saya di Twitter: @alexip.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Ada banyak skenario ketika Anda perlu menganalisis, memodifikasi, dan memproses berkas-berkas besar dengan cepat, baik dalam jumlah maupun ukurannya. Namun, berkas sering kali berupa berkas teks Comma Separated Values (CSV). Membukanya dengan aplikasi spreadsheet standar seperti Excel, LibreOffice, atau OpenOffice akan membebani memori mesin. Selain itu, memproses sejumlah besar berkas dalam satu batch sering gagal setelah beberapa jam karena anomali berkas yang tak terduga.
Anda akhirnya menghabiskan banyak waktu dengan layar yang membeku, restart, dan menunggu lama.
Namun, sebagian besar tugas ini dapat dilakukan hanya dengan beberapa baris kode. Terlebih lagi, memahami beberapa baris perintah shell sederhana dapat sangat membantu menghemat waktu dan mengurangi frustrasi.
Artikel ini akan memberikan ikhtisar beberapa perintah shell yang saya gunakan hampir setiap hari. Semoga Anda menemukannya bermanfaat.
Catatan Singkat
Perhatikan bahwa ada berbagai jenis shell (bash, zsh, ...), dengan bash sebagai yang paling umum karena menjadi shell bawaan di OS X dan distribusi Linux utama. Zsh (dan Oh My Zsh) adalah alternatif yang populer dan kuat. Perintah shell yang disertakan dalam posting blog ini telah diuji pada bash di OS X (macOS) dan seharusnya berfungsi pada shell dan lingkungan lain.
Semua contoh berikut didasarkan pada adult dataset dari repositori UCI Machine Learning yang juga dikenal sebagai dataset "Census Income" dan tersedia di sini. Dataset ini umum digunakan untuk memprediksi apakah pendapatan melebihi \$50K/tahun berdasarkan data sensus. Dengan 48842 baris dan 14 atribut, ini bukan dataset besar, tetapi cukup untuk mengilustrasikan contoh-contohnya. Meskipun data disimpan dengan ekstensi
.data, ini adalah berkas CSV yang terformat baik. Silakan unduh datasetnya untuk mengikuti!Menghitung dengan
wcDiberi sebuah berkas berbasis teks baru, Anda ingin tahu berapa banyak baris yang dikandungnya. Ini dapat dilakukan dengan perintah word count
wc -l:Yang memberi tahu bahwa berkas
adult.databerisi 32562 baris. Flag-lmemberi tahuwcuntuk menghitung baris. Namun Anda juga dapat menggunakanwcuntuk menghitung kata dengan flag-w.Berkas
adult.databerisi hampir 500 ribu kata.Perintah
wcjuga dapat menghitung jumlah berkas dalam sebuah direktori dengan menggunakan keluaran perintahls -lsederhana sebagai masukan kewc. Menggunakan keluaran suatu perintah sebagai masukan ke perintah lain dengan simbol pipa|adalah pola shell yang berguna yang disebut pipelining. Anda akan melihatnya di beberapa contoh sepanjang artikel ini.Sekarang anggap Anda memiliki folder dengan banyak berkas. Perintah berikut akan memberi tahu Anda persis berapa banyak berkas yang dikandungnya:
Ada banyak aplikasi lain untuk
wcjika Anda mulai menambahkan wildcard dan subfolder.Mari kembali ke berkas
adult.dataAnda dan lihat baris-baris pertama dengan perintahhead. Secara bawaan,headmenampilkan 10 baris; Anda membatasi keluaran ke 2 baris pertama menggunakan flag-n.Dan Anda memperhatikan bahwa berkas tersebut tidak memiliki baris header. Nama kolom tidak ada di dalam berkas. Anda dapat menambahkan baris header itu dengan menggabungkan dua berkas menggunakan perintah
cat.Menggabungkan Berkas dengan
catPerintah
catmencetak isi berkas ke keluaran standar (terminal Anda). Ini juga dapat digunakan untuk menggabungkan serangkaian berkas. Perintahcat file_1.csv file_2.csv > target_file.csvakan menggabungkan isifile_1.csvdanfile_2.csvketarget_file.csv, menambahkanfile_2.csvdi akhirfile_1.csv.Berkas header tidak ada di dataset asli dan Anda perlu membuatnya. Untuk melakukannya, Anda melakukan
echodaftar nama kolom yang dipisahkan koma ke berkasheader.csv.Dalam contoh ini, Anda menggunakan karakter pengalihan shell
>untuk membuang keluarancatke berkasadult.csv.>akan membuat berkas atau mengganti seluruh isinya jika berkas sudah ada. Menggandakan simbol>>akan menambahkan konten baru ke berkas yang sudah ada tanpa menghapus isinya.Sekarang mari tambahkan berkas
header.csvdi awal berkasadult.data. Pada saat yang sama, Anda mengganti namaadult.datamenjadiadult.csvkarena, pada akhirnya, ini adalah berkas berformat CSV.Periksa bahwa baris pertama
adult.csvberisi nama kolom dengan:Memodifikasi Berkas dengan
sedSkenario penambangan data yang sering terjadi lainnya adalah ketika berkas rusak atau terformat buruk, misalnya mengandung karakter non-UTF-8 atau koma yang salah tempat. Anda dapat memperbaiki berkas tersebut tanpa benar-benar membukanya menggunakan perintah
sed.Pola umum
sedadalahDataset
adult.csvmenggunakan karakter?untuk menandai nilai yang hilang. Anda dapat mengganti karakter tersebut dengan nilai bawaan yang lebih sesuai menggunakansed. String kosong lebih disukai sebagai penanda nilai yang hilang karena akan ditafsirkan sebagai nilaiNaNsaat memuat data ke dalam Pandas DataFrame.Ini memberi Anda hitungan 2399 baris dengan setidaknya satu kolom yang memiliki nilai hilang yang ditandai dengan
?. Perintah berikut akan mengganti semua kolom dengan?menjadi string kosong. Semua sel yang hanya berisi?diikuti spasi kini akan benar-benar kosong.Perhatikan bahwa Anda menggunakan pembatas kolom
,dalam string sumber dan target untuk menghindari penggantian tanda tanya yang sah yang mungkin ada di tempat lain dalam dataset.Membuat Subset dari Berkas Besar
Bayangkan sekarang Anda berurusan dengan berkas yang berisi lebih dari 30 juta baris. Saat Anda menyusun skrip Python atau R, Anda ingin menguji alur kerja pada sampel dari berkas besar asli dan tidak harus memuat seluruh dataset ke memori. Anda dapat menggunakan kombinasi
headdantailuntuk membuat subsampel dari dataset asli.headmenampilkan bagian awal berkas;tailmenampilkan bagian akhir berkasSeperti yang telah Anda lihat, perintah-perintah ini menerima flag
-n, singkatan dari--lines, yang membatasi jumlah baris pada keluaran.tailjuga menerima flag-fdi manafadalah--followyang menampilkan data yang ditambahkan ketika baris ditambahkan ke akhir berkas. Ini sangat nyaman untuk memantau berkas log saat skrip Anda berjalan menggunakantail -f <logfile>.Dengan menggabungkan simbol pipa
|denganheaddantail, Anda dapat mengekstrak sejumlah baris dari dalam berkas sumber dan mengekspor isinya ke berkas subset. Misalnya, untuk mengekstrak 20 baris mulai dari baris ke-100:Perhatikan bahwa Anda terlebih dahulu mengambil first_line + number_of_lines dengan
headlalutailnumber_of_lines-nya. Perintah subset generik adalah:di mana
total_lines = first_line + number_of_lines. Namun, berkas sampel baru Anda tidak lagi berisi baris header. Kita sudah tahu cara menambahkan kembali header ke berkas subset menggunakancatuntuk menggabungkan berkas subset dan berkasheader.csvyang dibuat sebelumnya:Perhatikan bahwa Anda tidak menggunakan nama berkas sumber
adult\_sample.csvsebagai nama berkas target, melainkan membuat berkas baru berjuduladult\_sample\_with\_header.csv. Menggunakan nama yang sama dengan salah satu sumber sebagai target saat memakaicatakan menghasilkan isi berkas yang tak terduga. Lebih baik membuat berkas baru sebagai keluaran perintahcat.Menemukan Duplikasi dengan
uniqDengan perintah
uniqAnda dapat menemukan baris yang berulang berdampingan dalam sebuah berkas.uniqmemiliki beberapa flag, yang paling berguna antara lain:uniq -c: menambahkan jumlah pengulangan ke setiap baris;uniq -d: hanya menampilkan baris duplikat; danuniq -u: hanya menampilkan baris unik.Namun,
uniqbukan perintah yang cerdas. Baris berulang tidak akan terdeteksi jika tidak berdampingan. Artinya, Anda perlu terlebih dahulu melakukansortpada berkas. Perintah ini menghitung jumlah baris yang terduplikasi dalamadult.csv.dan menunjukkan bahwa ada 23 duplikasi. Perintah berikut mengambil keluaran semua baris dengan jumlah pengulangan yang ditambahkan, mengurutkan secara terbalik, dan menampilkan 3 duplikasi teratas:
Ada banyak opsi kuat yang dapat diperoleh dengan mengombinasikan
sortdanuniqdengan berbagai flag. Gunakanman sortdanman uniquntuk mengeksplorasi perintah-perintah ini lebih lanjut.Memilih Kolom dengan
cutHal hebat tentang berkas CSV dan perintah shell adalah Anda juga dapat bekerja pada tingkat kolom dengan menggunakan
cutuntuk memilih kolom tertentu.cutmemiliki dua flag utama:-duntuk menentukan pembatas kolom dan-funtuk menentukan kolom yang ingin Anda olah. Dalam contoh berikut, Anda menggunakancutuntuk mencari jumlah nilai unik yang diambil oleh variabel kategorikalworkclass(kolom 2).Pertama pilih kolom
workclassdan arahkan ke head untuk memverifikasi bahwa Anda mengambil kolom yang benar:Sekarang, untuk menghitung nilai unik, Anda mengurutkan keluaran cut dan mengarahkannya ke
uniq -c, seperti berikut:Yang memberi tahu Anda, misalnya, bahwa ada 1837 nilai null, dan bahwa kelas utama sejauh ini adalah kelas
Privatedengan 22969 kemunculan.Baris perintah di atas mirip dengan metode
value_counts()yang diterapkan pada DataFrame yang berisi dataadult.csv.Looping
Sejauh ini, Anda sebagian besar bekerja pada satu berkas. Untuk mengganti nama, memproses, atau mentransfer banyak berkas, Anda sebaiknya menambahkan loop ke perangkat shell kita. Format generik loop di bash adalah:
Mari kita praktikkan. Bayangkan Anda memiliki 1000 berkas dengan spasi pada nama berkasnya dan Anda ingin mengganti setiap spasi dengan garis bawah "_".
Dalam contoh ini,
replace_sourcedanreplace_targetsebagai penampung untuk karakter spasi dan garis bawah*.csvdi folder saat inifilename, Anda membuatnew_filenamedengan mengganti setiap spasi menjadi garis bawahmvFaktanya, Anda tidak hanya menggunakan shell untuk melakukan loop melalui berkas dalam direktori, tetapi juga telah membuat variabel.
Variabel
Anda akan menutup pengantar perintah shell ini dengan variabel. Pembuatan variabel di shell cukup dilakukan dengan
Misalnya:
Perhatikan bahwa tidak ada spasi di sekitar tanda '='.
var = '<a string>'tidak akan berfungsi. Untuk mengembalikan nilai variabel, cukup lakukanecho:Dan untuk menggunakannya dalam skrip, enkapsulasi dalam tanda kutip seperti yang telah Anda lihat sebelumnya:
Menulis loop dan menggunakan variabel membuka pintu bagi manipulasi berkas yang lebih kompleks dan menjadi gerbang menuju penulisan skrip shell yang berada di luar cakupan artikel pengantar ini. Namun, penulisan skrip shell cukup sederhana jika Anda mulai dari yang kecil dan meningkat seiring bertambahnya kepercayaan diri.
Kesimpulan
Baris perintah shell sangat berguna dalam pekerjaan harian Anda sebagai ilmuwan data. Ada banyak contoh dan kasus penggunaan lain yang dapat dieksplorasi. Dan seperti yang akan Anda lihat, hampir selalu ada berbagai cara untuk mencapai hasil tertentu menggunakan beragam perintah shell dan flag terkait. Dalam kasus seperti itu, menjaga tetap sederhana selalu menjadi strategi yang menang.
Semoga contoh yang disajikan di sini membantu Anda mengintegrasikan perintah shell ke dalam perangkat pemrosesan data Anda. Jangan ragu untuk menghubungi dan berbagi trik shell Anda dengan saya di Twitter: @alexip.
Lihat tutorial kami Menyiapkan Lingkungan Data Science di Komputer Anda.