halo sobat sekolahlinux, pada tutorial kali ini saya coba memberikan tips dan tutorial bagaimana kita memanipulasi wording/config didalam sebuah file atau config untuk mempermudah pekerjaan sysadmin/devops/sre
di keseharian saya, biasanya saya menggunakan tools2 dibawah ini
- vim > cli
- sublim > gui
- shell (zsh,bash,sh) > cli
pada artikel kali ini saya hanya akan membahas tools yang cli based saja yaitu vim dan shell
vim
mari mulai dengan vim, vim biasanya saya gunakan untuk melakukan edit pada sebuah file, selain simple juga kaya akan feature yang saya butuhkan, namun pada case ini saya akan berfokus pada feature find dan find & replace, pada vim disini saya biasanya menggunakan perintah sederhanya untuk menemukan sesuatu, pada saat membuka vim kita ada didalam “normal mode” disini kita bisa memasukan “/” untuk mengakses mode find disertai keyword yang ingin ditemukan maka jadi “/nginx6”
FIND
misal pada contoh dibawah saya coba menemukan keyword yang mengandung “nginx6”, bisa dilihat pada hightlight line langsung mengarah ke line yang mengandung keyword “nginx6”, jika ada banyak word “nginx6” kamu bisa klik button “N” pada keyboard untuk “next to other finding”
FIND & REPLACE V1
lalu selanjutnya saya ingin mereplace word “nginx6” menjadi “nginx-kodok” maka kalian harus keluar dari mode find ke mode normal dengan klik button “esc” pada keyboard kalian, selanjutnya pada normal mode kalian ketikan “%s” untuk masuk ke mode find & replace
misal pada contoh dibawah saya akan coba find “nginx6” dan replace dengan “nginx-kodok” jika sudah klik button “enter”
maka keyword akan di replace dengan “nginx-kodok”
FIND & REPLACE V2
pada find & replace v2 ini saya akan coba menambahkan regex misal untuk memanipulasi 2 line langsung, disini untuk new line pada existing dan newline keyword baru menggunakan regex yg berbeda di existing kita menggunakan “\n” sedangkan pada keyword baru menggunakan “\r” yang artinya split
maka keyword yang berbeda line akan di replace seperti gambar dibawah
FIND & REPLACE V3
pada find & replace v3 ini saya akan coba melakukan reuse patern dari hasil find word existing, dan melakukan replace dan reuse patern yang sebelumnya pada replace, berikut ini patern nya
:%s/kata\(.*\)-kata\(.*\)-kata\(.*\)-kata\(.*\)/kata\4-kata\3-kata\2-kata\1/g
contoh pada gambar dibawah ini
maka hasilnya akan seperti dibawah ini
FIND & REPLACE V4
pada find & replace v4 ini saya akan coba remove empty line, contoh seperti pada gambar dibawah ini
maka hasilnya akan seperti pada gambar dibawah ini, 3 empty line berhasil di delete
sebenernya masih banyak lagi patern regex yang bisa kita manfaatkan untuk memanipulasi word didalam sebuah file menggunakan vim, dan juga mode dan istilah yang kamu bisa pelajari dari reference link dibawah
- https://vimregex.com/
- https://www.freecodecamp.org/news/vim-editor-modes-explained/
- https://www.vimfromscratch.com/articles/vim-macros