O comando que você mencionou sed 's/APPLE/apple/g' UPPER.txt > lower.txt não deve sobrescrever o original UPPER.txt , porque o comportamento padrão do sed é gravar em lower.txt . Há algo mais que você fez que pode ter substituído o arquivo original. sed não toca no arquivo original, a menos que você forneça -i flag. Para seus propósitos, sugiro fazer primeiro um backup do arquivo original, também conhecido como copiar.
Em uma nota secundária, lembre-se de que system() call é meio mal e não deve ser usado ,