Pengantar
Tokyo Institute of Technology telah menciptakan dan memelihara koleksi latihan NLP yang disebut "NLP 100 Exercise".
Dalam artikel ini, saya akan memberikan contoh jawaban untuk "Chapter 2: UNIX Commands".
Pengaturan lingkungan
File popular-names.txt menyimpan nama-nama bayi yang lahir di AS dengan jenis kelamin, jumlah kelahiran, dan tahun kelahirannya dalam format yang terpisah-pisah. Buatlah sebuah program dengan spesifikasi di bawah ini. Jalankan program tersebut dengan popular-names.txt sebagai masukan. Selanjutnya, konfirmasikan bahwa hasil yang sama (serupa) dapat diperoleh dengan menjalankan perintah UNIX.
$ wget https://nlp100.github.io/data/popular-names.txt
10. Line count
Hitung jumlah baris dari file tersebut. Konfirmasikan hasilnya dengan menggunakan perintah wc.
$ wc -l popular-names.txt
2780 popular-names.txt
11. Replace tabs into spaces
Ganti setiap kemunculan karakter tab menjadi spasi. Konfirmasikan hasilnya dengan menggunakan perintah sed, tr, atau expand.
$ head -5 popular-names.txt
Mary F 7065 1880
Anna F 2604 1880
Emma F 2003 1880
Elizabeth F 1939 1880
Minnie F 1746 1880
$ sed -e 's/\t/ /g' popular-names.txt | head -n 5
Mary F 7065 1880
Anna F 2604 1880
Emma F 2003 1880
Elizabeth F 1939 1880
Minnie F 1746 1880
12. col1.txt from the first column, col2.txt from the second column
Ekstrak nilai kolom pertama dari setiap baris, dan simpan hasilnya ke dalam col1.txt. Ekstrak nilai kolom kedua dari setiap baris, dan simpan hasilnya ke dalam col2.txt. Konfirmasikan hasilnya dengan menggunakan perintah cut.
$ cut -f 1 popular-names.txt > col1.txt
$ cut -f 2 popular-names.txt > col2.txt
13. Merging col1.txt and col2.txt
Gabungkan isi col1.txt dan col2.txt, dan buat sebuah file teks yang setiap barisnya berisi nilai dari kolom pertama dan kedua (dipisahkan dengan karakter tab) dari file aslinya. Konfirmasikan hasilnya dengan menggunakan perintah paste.
$ paste col1.txt col2.txt | head -n 5
Mary F
Anna F
Emma F
Elizabeth F
Minnie F
14. First N lines
Menerima sebuah bilangan asli
dari sebuah argumen baris perintah, dan menampilkan baris N pertama dari file tersebut. Konfirmasikan hasilnya dengan menggunakan perintah head. N
$ head -n 5 popular-names.txt
Mary F 7065 1880
Anna F 2604 1880
Emma F 2003 1880
Elizabeth F 1939 1880
Minnie F 1746 1880
15. Last N lines
Menerima bilangan asli
dari argumen baris perintah, dan menampilkan baris N terakhir dari file. Konfirmasikan hasilnya dengan menggunakan perintah tail. N
$ tail -n 5 popular-names.txt
Benjamin M 13381 2018
Elijah M 12886 2018
Lucas M 12585 2018
Mason M 12435 2018
Logan M 12352 2018
16. Split a file into N pieces
Menerima bilangan asli
dari argumen baris perintah, dan membagi file input menjadi beberapa bagian N pada batas-batas baris. Konfirmasikan hasilnya dengan menggunakan perintah split. N
$ split -l 200 popular-names.txt
17. Distinct strings in the first column
Temukan string yang berbeda (satu set string) dari kolom pertama file. Konfirmasikan hasilnya dengan menggunakan perintah cut, sort, dan uniq.
$ cut -f 1 popular-names.txt | sort -s | uniq
Abigail
Aiden
Alexander
.
.
.
Virginia
Walter
William
18. Sort lines in descending order of the third column
Mengurutkan baris dalam urutan numerik menurun dari kolom ketiga (mengurutkan baris tanpa mengubah konten setiap baris). Konfirmasikan hasilnya dengan menggunakan perintah sort.
$ sort -nrsk 3 ./popular-names.txt | head -n 5
Linda F 99689 1947
Linda F 96211 1948
James M 94757 1947
Michael M 92704 1957
Robert M 91640 1947
19. Frequency of a string in the first column in descending order
Temukan frekuensi string di kolom pertama, dan urutkan string berdasarkan urutan frekuensinya. Konfirmasikan hasilnya dengan menggunakan perintah cut, uniq, dan sort.
$ cut -f 1 ./popular-names.txt | sort | uniq -c | sort -rn
118 James
111 William
108 Robert
.
.
.
1 Julie
1 Crystal
1 Carolyn
Referensi