"sed" programı/tool/komutu ile ilgili.

Başlatan mir_as82, 05 Eylül 2016, 09:33:17

mir_as82

"sed" ile bir text dosyasının içinde find-replace yapmaya çalışıyorum. Ama bu "sed" programını/komutunu/tool unu standart C kütüphanesinde olan "system()" fonksiyonu ile kullanıyorum.
Sorunum şu, eğer dosya programın çalıştığı directoryde değilse işlem yapmıyor. Ama programın çalıştığı directoryde olursa find-replace yapılacak dosya bu sefer işlemi yapıyor. Bunun nedeni ne olabilir?
Çalışan ve çalışmayan örnek aşağıda:

snprintf(cmd, 1024,  "sed -e 's/ARANACAK_1/%s/g' -e 's/ARANACAK_1/%s/g' -e 's/ARANACAK_1/%s/g' -e 's/ARANACAK_1/%s/g' < /mnt/mtd/A/A/orjinal.conf > /mnt/mtd/A/A/son.conf",degisecek_1, degisecek_2, degisecek_3, degisecek_4);//Burada program /mnt/mtd/A/A directorysi altında çalıştığından işlem başarılı oluyor.
system(cmd);


snprintf(cmd, 1024,  "sed -e 's/ARANACAK_1/%s/g' -e 's/ARANACAK_1/%s/g' -e 's/ARANACAK_1/%s/g' -e 's/ARANACAK_1/%s/g' < /mnt/mtd/B/B/orjinal.conf > /mnt/mtd/B/B/son.conf",degisecek_1, degisecek_2, degisecek_3, degisecek_4);//Burada ise program /mnt/mtd/A/A nın altında çalıştığından /mnt/mtd/B/B nin altındaki dosyalar ile bir nevi işlem yapamıyor sanki!!
system(cmd);