Esta es una pregunta de código de golf. Debe tomar el contenido de dos archivos separados (i.txt y o.txt) e intercambiarlos. Puede crear un tercer archivo para ayudarlo con el proceso, pero haga que su programa lo elimine después de intercambiar el contenido del archivo. Cambiar el nombre de los archivos ahora está permitido nuevamente.
Los programas deben funcionar para cualquier contenido de archivo.
El código más corto gana, todos los envíos elegibles serán votados.

inodes el objetivo aquí sería quei.txt'sinodepara contener los datos deo.txt' sinode, y viceversa, por lo que si hay enlaces duros a los queinodes en otro lugar, su contenido aparecerán intercambian también. Cambiar el nombre no puede lograr eso.Respuestas:
zsh, 20
fuente
i=`<i.txt`;<o*>i*;<<<$i>o*. Es una pena que esto sea más corto.<t>o*;rm tpormv t o*!Python, 77
Python, 65
Python, 63
PHP, 68
Archivo por lotes de Windows, 42
Archivo por lotes de Windows (args), 30
fuente
$r=renamepara crear alias para funciones en PHP. ¡Gracias!Dos bash respuestas basadas en ; 52 y 62 caracteres
shell: diff + patch (+ tee + sed ...) 52
Tal vez no sea el más corto, pero me parece divertido (y no hay uso de archivos temporales ):
Donde el contenido se intercambia y los archivos se modifican en su lugar :
Ejecución de la muestra
Podría producir algo como:
uso de xargs para simplificar
mvsolicitudesNo tan divertido, pero agradable de todos modos.
fuente
patching file o.txtaparece uno .PHP, 89
Pensé en intentarlo.
Versión sin golf:
Aparentemente tomé 2 respuestas de aquí y las combiné ... oh, bueno.
fuente
Ruby, 72 bytes
¡Guauu! ¡Un código de rubí de golf! ¡No creo que se haya intentado antes!
Sin embargo, en realidad, esto requirió algunos atajos de Ruby agradables y un par de patrones que encontré. Fue mi primer golf y fue muy divertido hacerlo. Sin más preámbulos, aquí está el código de golf:
Y la versión sin golf
El factor clave en esto es que los parámetros pasados al
File.renameson esto, exactamente:Espero que esto (no) tenga sentido!
fuente
Powershell,
4449 bytesdonde
renes alias para Rename-Item . El script usa y elimina un tercer archivoa.txt.fuente
gcvalor predeterminado es UTF8NoBOM pero elscvalor predeterminado es ASCII. Pruebe algunos archivos UTF-8 o archivos binarios y podrá ver cómo puede fallar.-e by -nparámetros para garantizar que los archivos no cambien. Sería bueno agregar un parámetro-readCount 0al rendimiento. El script conrenamees más corto :) Corregido.Rubí
Versión acortada:
No es el más corto, pero muy simple y fácil de leer. Además, no hay archivos intermedios, solo RAM.
fuente
PHP
fuente
Shell script, 24
Funciona en Bash y probablemente en la mayoría de las conchas. Pase con sus dos nombres de archivo como parámetros.
Si desea nombres de archivo fijos, esto lo hará, por una penalización de 12 caracteres:
fuente
mvoperaciones, nocp.Pitón:
fuente
Archivo por lotes de Windows (48)
Olvidé el comando mover cuando escribí esto ...
fuente
aarchivo!C 162
Golfed: utiliza t.txt como archivo tmp y cambia nombres y luego elimina t.txt.
Editar: eliminado 2 espacios
fuente
PHP - 172
Versión de golf de la respuesta de @ EisaAdil
fuente
Rebol - 46 (cambiar el nombre del archivo) o 55 (contenido de r / w)
Cambiar el nombre del archivo (usando
tcomo archivo temporal):Lea y luego escriba el contenido del archivo:
fuente
PHP, 45
No es muy golfoso pero el PHP más corto hasta ahora.
fuente
Groovy - 99 caracteres
Este es mi intento, con Groovy 2.2.1. Traté de hacerlo sin renombrar:
Sin golf:
fuente
VBA (148 ... 132) y (126 ... 110)
Cambiar el nombre con un archivo temporal t en la unidad c: \. También primer intento de golf: S
Si scrrun.dll ya está referenciado, podría reducirlo un poco a 126 ... 110.
fuente
C: 65 caracteres
Una solución bastante simple en C que hace el trabajo. Utiliza un nombre temporal (
.txt) para uno de los archivos antes de darle su nuevo nombre.Ungolfed (observe cómo falla el resaltado de sintaxis en la definición, ¡se ha descubierto un error!):
fuente
Perl, 120 bytes (intercambio de contenido sin cambio de nombre de archivo)
El contenido del archivo se guarda en la memoria y se vuelve a escribir en el otro archivo. Así
i.txtyo.txtdebe caber en la memoria.Dado que el contenido del archivo se intercambia realmente, los enlaces duros se actualizan automáticamente, vea el comentario de AJManfield .
Sin golf:
fuente
Lote de Windows, 39 bytes
fuente
Lua ,
7170 bytesPruébalo en línea!
Defina
os, la biblioteca del sistema operativo, como la tabla global para que podamos escribirrenamey enremovelugar deos.renameyos.remove. (Por cierto, esto también significa que las variables de una letra son en realidad campos de laostabla). Haga un alias corto paraos.renameahorrar algo de espacio. Configure variables de nombre de archivo, utilizando'.txt'como archivo temporal. Renombra y elimina.fuente
PHP, 52 bytes
Pregunta php de Anyway modernizado y golf:
Corre con
php -nr '<code>'.fuente
Tcl , 122 bytes
Pruébalo en línea!
Tcl , 169 bytes
Pruébalo en línea!
fuente
SmileBASIC,
3635 bytesfuente