Estoy tratando de ejecutar el siguiente comando en Windows Server 2003, pero sed crea un montón de archivos que no puedo borrar de la línea de comandos en el directorio actual.Sed crea archivos no-que se puedan eliminar en Windows
for /R %f in (*.*) do "C:\Program Files\gnuwin32\bin\sed.exe" -i "s/bad/good/g" "%f"
¿Alguien tiene alguna sugerencia? Misteriosamente, soy capaz de eliminar los archivos usando Windows Explorer.
a lo solicitado, he aquí algunos nombres de archivo de ejemplo:
- sed0E3WZJ
- sed5miXwt
- sed6fzFKh
Y, más información de solución de problemas ...
- Ocurre desde el símbolo del sistema & archivos por lotes
- Si tan sólo tenga que ejecutar sed en un solo directorio, entonces yo uso
sed "s/bad/good/g" *.*
y todo está bien. Por desgracia, también necesito que aborde todos los subdirectorios. - sólo tiene SED instalado.
- Sed es la creación de los archivos
Sería de gran ayuda si usted mostró un nombre de archivo ejemplo. Probé tu comando con "c: \ cygwin \ bin \ sed.exe" y funcionó bien, salvo una advertencia sobre barras diagonales contra barras diagonales. –
sed -i realmente funciona bastante bien para mí si el archivo no es de solo lectura para empezar. No hay archivos temporales no recuperables sobrantes y sin errores. Debo mencionar que lo estoy usando en combinación con find en lugar de en for loop. – mjohnsonengr