Écrivez un programme qui analyse la sortie de uptime
et génère une barre de progression anatomiquement suggestive (comme indiqué) avec une longueur égale à la disponibilité actuelle en jours:
$ uptime
23:01 up 34 days, 7:30, 5 users, load averages: 0.23 0.27 0.24
$ uptime|<command>
8==================================D
(34 jours = 34 signes égaux)
La réponse la plus courte l'emporte.
Réponses:
Rubis, 39
Aucune entrée requise (par décorticage):
Ou depuis stdin (40 caractères):
la source
gets=~/up (\d*)/;puts "8#{?=*$1.to_i}D"
'gets=~/up (\d*)/;puts "8#{"="*$1.to_i}D"'.length=="gets=~/up (\d*)/;puts '8'+'='*$1.to_i+'D'".length
#trueBash, 71 caractères
Je ne suis pas tellement en train d' exposer mes temps de disponibilité
gensur Internet, donc je dessine une clôture à la place. C'est le même nombre de caractères. Pensez à réinitialiserp
entre les appels.Pure bash, 71 caractères inclus
uptime
.Bien, bien, bien ... le mien est plus grand que le vôtre.
la source
Perl -
2624 caractèresRan comme ça:
edit : Non cité le «D» final - merci JB
la source
Haskell, 88 caractères
Comme c'est souvent le cas, Haskell n'offre pas la jouabilité au golf la plus extrême de certaines autres langues, mais permet une expression élégante des structures mathématiques sous-jacentes au problème. Sur la base de leur travail séminal dans ce domaine, je vise à introduire une implémentation Haskell de l' opérateur Holkins-Krahulik Approximation . En bref, l'opérateur ignore ses deux entrées et renvoie une fonction d'impression phallus paramétrée par la longueur de l'arbre.
la source
Perl, 17 caractères
Maintenant avec dis:
Rendements
était:
Rendements
(Je ne peux pas "dire", malheureusement)
la source
57 caractères
la source
35 caractères
donc,
Modifier : était
Edit 2 : commentaire de JB (utiliser à la
\
place de''
)la source
Windows PowerShell, 28
Au moins
donne la sortie correcte, il devrait donc être capable de gérer
uptime
la sortie de. Je ne peux pas tester, cependant, car GNUWin32 inclut un casséuptime
qui essaie de lire à partir d'un fichier inexistant (Remarque pour les personnes qui portent des outils Unix: N'essayez pas de supposer que Windows est un Unix et adhère aux mêmes principes ou conventions; il n’existe pas de fichier contenant l’heure de démarrage sous Windows).la source
Lisp commun, 84 caractères
Cela prend la chaîne de disponibilité comme entrée. Il semble qu'il devrait y avoir une correspondance de solution plus courte # 'écrivant sur une liste, mais si c'est le cas, je ne peux pas la proposer.
la source
GolfScript (24 caractères)
Haskell (73 caractères)
C (131 caractères)
la source
' '/3=~8\'='*'D'
PHP, 62 caractères
Aucune entrée requise, cela s'explique.
la source
Python (42)
Remarque: Python 3 utilisé pour réduire le nombre total de caractères.
la source
Python, 65 octets
tester:
la source
PHP, 61
la source
Lisp commun, 57 caractères
(hors implémentation / shebang spécifique au système d'exploitation)
Basé sur une tentative de satisfaire la réponse du Dr Pain souhait du un moyen plus court d'écrire un caractère répété. Celui-ci peut être utilisé dans un pipeline comme indiqué dans la question.
(La chaîne de format spécifie pour justifier à droite la chaîne vide (entre
~<
et~>
), dans un champ de largeur spécifié par un argument, complété à l'aide du=
caractère.)la source
K, 35
.
la source
Bash 67 caractères
invocation à la lettre de mission:
Plus court
54 caractères seulement:
avec cette variation:
invocation, pas à 100% conformément aux règles:
sortie dans les deux temps:
Astuces non quotidiennes:
lit 06: 29: 53 = t, up = u, 16 = d reste ... = w
sans w, tout à la fin serait mis dans $ d.
expand est normalement utilisé pour traduire un onglet en une quantité de blancs et prend un paramètre si vous n'aimez pas 8.
Saisir le 3ème paramètre avec 3 $
echo -e '\t'|expand -t $3|sed 's/ /=/g'
est encore plus court, mais nécessite une invocation, qui ne correspond pas aux mots des règles.la source
bash / zenity 38 version courte, 68 version plus longue
La version courte se termine après $ d, la plus longue tient compte du fait que nous connaissons une valeur maximale et aimons avoir un texte utile:
la source
Gema , 24 caractères
Exemple d'exécution:
la source
AutoHotkey , 39 octets
Pas d'entrée. Le résultat est envoyé à la fenêtre active.
La valeur intégrée
A_TickCount
est le nombre de millisecondes depuis le redémarrage de l'ordinateur.la source