Linux, Shuf: il comando UNIX che sta facendo impazzire la rete

Rispondi
Avatar utente
openresource
Administrator
Administrator
Messaggi: 382
Iscritto il: mar gen 28, 2020 9:52 pm
Reactions score: 4
Località: varese
Contatta:
mag 2020 30 05:14

Linux, Shuf: il comando UNIX che sta facendo impazzire la rete

Messaggio da openresource

In questi giorni spopolano i Meme riguardanti il comando Unix shuf. shufpermette, tra le altre cose, di effettuare delle permutazioni casuali delle righe di un file e restituisce il risultato nello standard output  del vostro terminale. Come funziona? Supponiamo di creare un file di testo test.txt e di scriverci quattro nomi. Dando il comando

  • shuf test.txt

verranno stampati i quattro nomi in ordine casuale. Ecco un esempio:
Immagine
Shuf permette anche di scegliere una linea casuale dal file usando l’opzione -n. Questo limita l’output al numero specificato

  • shuf -n 1 test.txt

Immagine
L’opzione -e permette la permutazione dallo standard input:

  • shuf -e uno due tre

Se dovete decidere chi guida al sabato sera in modo del tutto casuale sapete come fare:

  • shuf -e Marco Matteo Luca Federico

Inoltre shuf permette di:

  • Randomizzare le righe di un file
    shuf filename

  • Ottenere in output solo cinque righe
    shuf -n 5 filename

  • Scrivere l’output su un altro file
    shuf filename -o output_filename

  • Generare un numero random in un range
    shuf -i 1-10

Su Ubuntu dovrebbe essere installato di default, altrimenti date

  • apt-get install coreutils

Per ulteriori dettagli su questo comando vi rimando alla relativa pagina del manuale.
Shuf fa impazzire il Web
Avete notato decine di meme su shuf in questi giorni?
Tutto nasce da un post su StackOverflow di qualche anno fa a cui nessuno aveva fatto caso.
Un utente chiede come effettuare mediante uno script Bash la permutazione di N righe di un file. Un altro utente gli risponde consigliandogli di usare shuf:

  • shuf -n N input > output

Un terzo utente, Ash, sotto questa risposta ha commentato dicendo che con shuf è riuscito a permutare in un minuto un file costituito da 78 miliardi di righe. In realtà il numero riportato da Ash pare poco veritiero, anche se il tempo impiegato dipende strettamente dall’hardware della macchina. A titolo informativo alcune prove con un iMac di qualche anno fa hanno portato a gestire 10 milioni di righe al secondo, quindi 600M al minuto, che è ben lungi da 78 miliardi.
Qualcuno di Programmer Humor ha notato questa risposta e il seguito potete immaginarlo.
Su Reddit il primo meme ha oltre 21 mila like:

via/https://www.lffl.org/

Immagine
Rispondi