Background: saya ingin mendownload list tutorial tentang SED dari Kris Occiphinti. Tapi saya ga mau download semua list yang ada, alias saya mau video tertentu saja.

Youtube

List videonya saya simpan di file bernama list (download filenya disini)

1
cat list

Hasilnya :

1
2
3
4
5
6
https://www.youtube.com/watch?v=Kv544g9i-UA&list=PLcUid3OP_4OW-rwv_mBHzx9MmE5TxvvcQ&index=7&t=0s
https://www.youtube.com/watch?v=MUvqFx6wArI&list=PLcUid3OP_4OW-rwv_mBHzx9MmE5TxvvcQ&index=8&t=28s
https://www.youtube.com/watch?v=hCMnDxD6asE&list=PLcUid3OP_4OW-rwv_mBHzx9MmE5TxvvcQ&index=9&t=0s
https://www.youtube.com/watch?v=AmTwNF-uiLY&list=PLcUid3OP_4OW-rwv_mBHzx9MmE5TxvvcQ&index=10&t=0s
https://www.youtube.com/watch?v=FfY-KRUsFds&list=PLcUid3OP_4OW-rwv_mBHzx9MmE5TxvvcQ&index=11&t=0s
https://www.youtube.com/watch?v=XSJb8g96fvo&list=PLcUid3OP_4OW-rwv_mBHzx9MmE5TxvvcQ&index=12&t=0s

Menggunakan Perintah Cut untuk extract id-video Youtube 

Target : saya ingin mengubah urlnya menjadi https://youtu.be/id-video

Menggunakan command cut, pertama pisahkan id-video dari url:

1
cat list | cut -d \= -f2

Hasilnya :

1
2
3
4
5
6
Kv544g9i-UA&list
MUvqFx6wArI&list
hCMnDxD6asE&list
AmTwNF-uiLY&list
FfY-KRUsFds&list
XSJb8g96fvo&list

Penjelasan : program cut memotong line dengan -d (delimiter/pembatas) tanda ‘=’ dan hanya mengambil bagian kedua setelah tanda ‘=’

Misalnya url pertama https://www.youtube.com/watch?v=Kv544g9i-UA&list=PLcUid3OP_4OW-rwv_mBHzx9MmE5TxvvcQ&index=7&t=0s

Jika dipisahkan berdasarkan tanda ‘=’ maka akan terpecah menjadi beberapa bagian :

1
2
3
4
5
https://www.youtube.com/watch?v=
Kv544g9i-UA&list=
PLcUid3OP_4OW-rwv_mBHzx9MmE5TxvvcQ&index=
7&t=
0s

Karena saya hanya mau id-videonya saja maka saya pilih bagian kedua, yang direpresentasikan dengan opsi -f2

Tapi masih ada satu lagi tanda & yang bukan termasuk bagian dari id-video. Menggunakan prinsip yang sama maka standard output dari file tersebut kita pipe sekali lagi menggunakan perintah cut

1
cat list | cut -d \= -f2 | cut -d \& -f1

Dan hasilnya sesuai yang kita inginkan, yaitu id dari video youtube saja yang ter-extract

1
2
3
4
5
6
Kv544g9i-UA
MUvqFx6wArI
hCMnDxD6asE
AmTwNF-uiLY
FfY-KRUsFds
XSJb8g96fvo

AWK untuk menambahkan prefix https://youtu.be ke id-video 

Sesuai dengan target diatas tadi, kita ingin menambahkan https://youtu.be ke setiap id video.

Disini saya menggunakan program AWK.

Bisa juga menggunakan program SED

1
cat list | cut -d \= -f2 | cut -d \& -f1 | awk '{print "https://youtu.be/"$0}'

Tadaa…

1
2
3
4
5
6
https://youtu.be/Kv544g9i-UA
https://youtu.be/MUvqFx6wArI
https://youtu.be/hCMnDxD6asE
https://youtu.be/AmTwNF-uiLY
https://youtu.be/FfY-KRUsFds
https://youtu.be/XSJb8g96fvo

Tapi, saya mau menyimpannya ke file bernama listn, caranya mudah tinggal redirect output tadi ke file dengan menambahkan tanda > nama file

1
cat list | cut -d \= -f2 | cut -d \& -f1 | awk '{print "https://youtu.be/"$0}' > listn

Done…

Bagi yang ingin belajar SED, list ini bisa menjadi salah satu tempat belajar (selain video lainnya)

Referensi :