sed -i 's/~/;/g' ${extract_file}/${file_export}_${file_date}.csv
-i berarti edit langsung file tanpa membuat salinan baru.
Perintah yang kamu tulis ini digunakan untuk membaca isi file CSV dan mengganti karakter `~` dengan `;`. Mari kita bahas bagian-bagiannya:
### **Penjelasan Perintah**
```sh
cat ${extract_file}/${table_upload}_${start_date}.csv | sed 's/~/;/g'
```
- `cat ${extract_file}/${table_upload}_${start_date}.csv`
→ Membaca isi file CSV yang lokasinya dinamis (ditentukan oleh variabel shell).
- `| sed 's/~/;/g'`
→ Menggunakan **sed** (Stream Editor) untuk mengganti **semua** (`g` = global) karakter `~` dengan `;`.
### **Alternatif yang Lebih Efisien**
Penggunaan `cat` tidak diperlukan karena `sed` bisa langsung membaca file:
```sh
sed 's/~/;/g' ${extract_file}/${table_upload}_${start_date}.csv
```
Ini lebih cepat dan lebih efisien karena tidak perlu menggunakan **pipe (`|`)** tambahan.
### **Jika Ingin Menyimpan Hasilnya ke File Baru**
```sh
sed 's/~/;/g' ${extract_file}/${table_upload}_${start_date}.csv > output.csv
```
### **Jika Ingin Mengubah File Asli (In-Place Editing)**
```sh
sed -i 's/~/;/g' ${extract_file}/${table_upload}_${start_date}.csv
```
- **`-i`** berarti edit langsung file tanpa membuat salinan baru.
- Jika ingin menjaga backup, gunakan `-i.bak`, misalnya:
```sh
sed -i.bak 's/~/;/g' ${extract_file}/${table_upload}_${start_date}.csv
```
Ini akan membuat file backup dengan ekstensi `.csv.bak` sebelum perubahan diterapkan.
Kalau ada kendala atau butuh modifikasi tambahan, kasih tahu aja! 🚀