Di dalam pekerjaan sehari-hari, ada beberapa task yang membutuhkan penyesuaian terhadap data yang diberikan oleh klien. Atau bisa juga data yang diambil dari server yang membutuhkan penyesuaian. Misalnya task terkait dengan migrasi email server dari server lain ke Zimbra. Klien hanya memberikan list user untuk diimport pada Zimbra. Misal list usernya seperti berikut
user1@example.tld user2@example.tld user3@example.tld
Proses import account tersebut, dapat dilakukan 2 cara. Pertama, dibuatkan secara manual via GUI/Zimbra Admin. Kedua, dibuatkan secara manual via CLI. Keuntungan pembuatan via CLI, dapat dilakukan secara massal. Misalnya pembuatan account via CLI perintahnya sebagai berikut
zmprov ca user1@example.tld passwordnya
Atau bisa juga seperti berikut
zmprov ca user1@example.tld passwordnya
Perbedaan dari 2 command di atas adalah perintah zmprov. Pada command pertama, zmprov dijalankan berbarengan dengan opsi pembuatan account. Pada command kedua, zmprov dijalankan terlebih dahulu. Setelah masuk prompt prov>, opsi pembuatan account baru dijalankan.
Dari sample di atas, ada perintah yang harus dijalankan sebelum alamat-email dan ada opsi yang harus ditambahkan setelah alamat-email. Dengan hanya diberikannya list user saja, maka saya harus menambahkan command sebelum dan sesudah alamat email. Untuk memudahkan hal tersebut, saya biasa menggunakan program sed.
Diasumsikan terdapat file listuser.txt yang berisi daftar email seperti berikut
user1@example.tld user2@example.tld user3@example.tld
Untuk menambahkan string di awal, jalankan command berikut
sed -i 's/^/zmprov ca /' listuser.txt
Hasil dari peritah di atas, menjadikan isi file listuser.txt seperti berikut
zmprov ca user1@example.tld zmprov ca user2@example.tld zmprov ca user3@example.tld
Untuk menambahkan string di akhir, jalankan command berikut
sed -i 's/$/ passwordnya/' listuser.txt
Hasil dari peritah di atas, menjadikan isi file listuser.txt seperti berikut
zmprov ca user1@example.tld passwordnya zmprov ca user2@example.tld passwordnya zmprov ca user3@example.tld passwordnya
Dengan program sed, saya dapat memanipulasi data agar ada tambahan string sebelum/setelah baris tulisan.
Contoh di atas, hanyalah sebagian kecil dari fungsi program sed. Silakan lakukan explore untuk fungsi-fungsi yang lainnya.
Silakan dicoba dan semoga bermanfaat 🙂