Napisz program, który analizuje dane wyjściowe uptime
i generuje anatomicznie sugestywny pasek postępu (jak pokazano) o długości równej bieżącej dostępności w dniach:
$ uptime
23:01 up 34 days, 7:30, 5 users, load averages: 0.23 0.27 0.24
$ uptime|<command>
8==================================D
(34 dni = 34 znaki równości)
Najkrótsza odpowiedź wygrywa.
Odpowiedzi:
Ruby, 39 lat
Nie wymaga wprowadzania danych (przez wyłuskanie)
Lub ze standardowego (40 znaków):
źródło
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 znaków
Nie jestem aż tak dużo do wystawiania moich
genuptimes w internecie, tak Rysuję ogrodzenie zamiast. To ta sama liczba znaków. Pomyśl o resetowaniup
między połączeniami.Pure Bash, 71 znaków, w tym
uptime
.Cóż, cóż ... mój ... jest większy niż twój.
źródło
Perl -
2624 znakówBiegł tak:
edytuj : Nie cytuję końcowego „D” - dzięki JB
źródło
Haskell, 88 znaków
Jak to często bywa, Haskell nie oferuje najbardziej ekstremalnych możliwości gry w golfa w niektórych innych językach, ale pozwala na eleganckie wyrażenie struktur matematycznych leżących u podstaw problemu. Opierając się na ich przełomowej pracy w tej dziedzinie, zamierzam wprowadzić implementację operatora aproksymacji Holkins-Krahulik w Haskell . W skrócie, operator ignoruje oba dane wejściowe i zwraca funkcję drukowania fallusa sparametryzowaną długością wału.
źródło
Perl, 17 znaków
Teraz powiedz:
Wydajność
było:
Wydajność
(Nie mogę niestety powiedzieć)
źródło
57 znaków
źródło
35 znaków
więc,
Edycja : był
Edycja 2 : komentarz JB (użyj
\
zamiast''
)źródło
Windows PowerShell, 28
Przynajmniej
daje poprawne wyjście, więc powinno być w stanie obsłużyć
uptime
wyjście. Nie mogę jednak przetestować, ponieważ GNUWin32 zawiera uszkodzony,uptime
który próbuje odczytać z nieistniejącego pliku (Uwaga dla osób przenoszących narzędzia uniksowe: Nie próbuj zakładać, że Windows jest uniksowy i przestrzega tych samych zasad lub konwencji; tam nie ma pliku zawierającego czas rozruchu w systemie Windows).źródło
Common Lisp, 84 znaków
Pobiera to ciąg uptime jako dane wejściowe. Wygląda na to, że powinno być krótsze mapowanie rozwiązania # 'napisz listę, ale jeśli tak, to nie mogę jej wymyślić.
źródło
GolfScript (24 znaki)
Haskell (73 znaki)
C (131 znaków)
źródło
' '/3=~8\'='*'D'
PHP, 62 znaki
Nie wymaga żadnych danych wejściowych, działa.
źródło
Python (42)
Uwaga: Python 3 służy do zmniejszania całkowitej liczby znaków.
źródło
Python, 65 bajtów
test:
źródło
PHP, 61
źródło
Common Lisp, 57 znaków
(wyłączając shebang implementacyjny / specyficzny dla systemu operacyjnego)
W oparciu o próbę zaspokojenia odpowiedzi Dr. Pain na krótszy sposób napisania powtarzającej się postaci. Tego można użyć w potoku, jak pokazano w pytaniu.
(Ciąg formatu określa, aby wyjustować do prawej pusty ciąg (między
~<
i~>
), w polu o szerokości określonym przez argument, uzupełniony=
znakiem.)źródło
K, 35
.
źródło
Bash 67 znaków
wezwanie do litery zadania:
Znacznie krótszy
tylko 54 znaki:
z tą odmianą:
wywołanie, a nie 100% zgodnie z zasadami:
wyjście w obu czasach:
Sztuczki nie codzienne:
odczytuje 06: 29: 53 = t, góra = u, 16 = d odpoczynek ... = w
bez w, wszystko do końca zostanie umieszczone na $ d.
Rozwiń jest zwykle używany do przetłumaczenia tabulatora na liczbę spacji i przyjmuje parametr, jeśli nie lubisz 8.
Chwytanie trzeciego parametru z 3 $ w
echo -e '\t'|expand -t $3|sed 's/ /=/g'
jest jeszcze krótsze, ale wymaga wywołania, nie pasującego do słów reguł.źródło
bash / zenity 38 krótka wersja, 68 dłuższa wersja
Krótka wersja kończy się po $ d, dłużej bierze pod uwagę, że znamy wartość maksymalną i lubimy mieć pomocny tekst:
źródło
Gema , 24 znaki
Przykładowy przebieg:
źródło
AutoHotkey , 39 bajtów
Brak wejścia. Wynik jest wysyłany do aktywnego okna.
Wbudowana
A_TickCount
jest liczba milisekund od ponownego uruchomienia komputera.źródło