dog
est un utilitaire de ligne de commande qui accepte un nombre arbitraire d'arguments, le premier étant le texte à écrire et les autres étant arbitrairement de nombreux fichiers.
L' dog
utilitaire divisera le texte en portions égales sur ces fichiers. S'il reste n
, les premiers n
fichiers reçoivent un octet supplémentaire
dog
est le contraire de cat
, en tant que tel, pour tous x
, ce qui suit devrait tenir.
$> dog x a.txt b.txt ...
$> cat a.txt b.txt ...
x$>
Où ...
indique arbitrairement de nombreux fichiers.
Un exemple (12 octets, 3 fichiers, peuvent être divisés uniformément):
$> ./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 exemple avec le reste (13 octets, 5 fichiers, le reste 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
la source
la source
tac
c'est réel .Réponses:
Pyth - 12 octets
Utilise la fonction de division intégrée, puis utilise la carte de répartition sur la fonction d'écriture. Ne fonctionne pas en ligne.
la source
Python - 181 octets
la source
PHP, 107 octets
Le code golfé:
Le code détaillé:
la source
Pure bash: 97
En fonction: (
p=
n'est requis que pour la deuxième exécution)Les tests
Tous les fichiers ont une longueur de 4 octets et sont concaténés dans le bon ordre, contiennent "Dogs vs Cats" .
Les premiers fichiers ont une longueur de 3 octets et les derniers seulement 2, concaténés par ordre alphabétique, contiennent "0123456789abc" .
Explication (dégoûtant):
Si vous frappez:
declare -f dog
, bash répondra:Cela pourrait s'écrire:
la source
Rubis,
9387 octetsProgramme complet utilisant des arguments de ligne de commande.
Si je pouvais utiliser
s.slice!
pour muter la chaîne, je le ferais au lieu d'avoir besoin de l'utilisers[c..-1]
, mais Ruby ne vous laisse pas muter les chaînes d'argv sans les dupliquer au préalablela source