dog es una utilidad de línea de comandos que toma un número arbitrario de argumentos, el primero de los cuales es el texto a escribir y los otros son arbitrariamente muchos archivos.
La dogutilidad dividirá el texto en partes iguales sobre estos archivos. Si hay un resto n, los primeros narchivos obtienen un byte adicional
doges lo opuesto de cat, como tal, para todos x, lo siguiente debería ser válido.
$> dog x a.txt b.txt ...
$> cat a.txt b.txt ...
x$>
Donde ...indica arbitrariamente muchos archivos.
Un ejemplo (12 bytes, 3 archivos, se pueden dividir equitativamente):
$> ./dog.py "Dogs vs Cats" a.txt b.txt c.txt
$> cat a.txt
Dogs$> cat b.txt
vs $> cat c.txt
Cats$> cat a.txt b.txt c.txt
Dogs vs Cats$>
Un ejemplo con resto (13 bytes, 5 archivos, resto 3):
9$>./dog.py "0123456789abc" a.txt b.txt c.txt d.txt e.txt
$> cat a.txt
012$> cat b.txt
345$> cat c.txt
678$> cat d.txt
9a$> cat e.txt
bc$> cat a.txt b.txt c.txt d.txt e.txt
0123456789abc$>
code-golf
string
file-system
Caridorc
fuente
fuente

taces real .Respuestas:
Pyth - 12 bytes
Utiliza la función de división integrada y luego usa splat-map en la función de escritura. No funciona en línea.
fuente
Python - 181 bytes
fuente
PHP, 107 bytes
El código de golf:
El código detallado:
fuente
Golpe puro: 97
Como una función: (
p=solo se requiere para la segunda ejecución)Pruebas
Todos los archivos son de 4 bytes y están concatenados en el orden correcto, contienen "Perros contra gatos" .
Los primeros archivos son 3 bytes len y los últimos solo 2, concatenados por orden alfabético, contienen "0123456789abc" .
Explicación (ungolfing):
Si se golpea:
declare -f dog, fiesta responderá:Esto podría escribirse:
fuente
Ruby,
9387 bytesPrograma completo utilizando argumentos de línea de comando.
Si pudiera usar
s.slice!para mutar la cadena, lo haría en lugar de tener que usarlas[c..-1], pero Ruby no te permite mutar las cadenas de argv sin duplicarlas primerofuente