Utilizarea comenzii shuf in Linux

Configurare noua (How To)

Situatie

`shuf` generează permutări aleatorii – o modalitate tehnică de a spune că amestecă elementele. Dacă îi furnizezi un fișier, acesta afișează liniile într-o ordine aleatorie (de exemplu, `shuf names.txt`). La fel ca `tac`, face parte din pachetul GNU coreutils și citește din fluxul de intrare standard, ceea ce îi permite să fie utilizat în conducte de procesare (pipelines) la fel de ușor ca și în cazul fișierelor.

Utilitatea sa principală constă în extragerea de eșantioane. Opțiunea `-n` limitează numărul de linii afișate; astfel, `shuf -n 1 quotes.txt` selectează un singur citat aleatoriu, iar `shuf -n 10 dataset.csv` extrage un eșantion de zece linii dintr-un fișier voluminos. Oricine lucrează cu date poate folosi această funcție pentru a verifica rapid conținutul unui fișier, fără a fi nevoie să îl deschidă într-o aplicație de tip tabel (spreadsheet).

Solutie

Opțiunea -e tratează argumentele din linia de comandă drept date de intrare, ceea ce înseamnă că poți amesteca direct câteva cuvinte: `shuf -e pizza sushi tacos -n 1` tranșează o dilemă legată de cină într-o singură linie. În schimb, opțiunea -i generează un interval numeric; astfel, `shuf -i 1-100 -n 5` extrage cinci numere unice cuprinse între 1 și 100. Adăugarea opțiunii -r permite repetarea elementelor, transformând comanda într-un instrument simplu de aruncare a zarurilor.

Există și utilizări practice în scrierea de scripturi. Un script shell poate alege un fundal aleatoriu dintr-un folder transmițând rezultatul comenzii `ls` către `shuf -n 1`, poate reda o listă de redare într-o ordine aleatorie sau poate genera date de test variate. Atunci când trebuie să amesteci conținutul unui fișier suprascriindu-l pe cel original, opțiunea -o permite specificarea fișierului de ieșire. Spre deosebire de o simplă redirecționare, aceasta gestionează în siguranță situația în care fișierul de intrare și cel de ieșire sunt identice.

Totuși, ca în cazul tuturor elementelor din această listă, există o problemă. În mod implicit, `shuf` utilizează sursa de numere aleatorii a sistemului; aceasta este adecvată pentru sarcinile cotidiene, dar nu reprezintă un instrument potrivit pentru scopuri criptografice, cum ar fi generarea de parole sau chei. Pentru a obține rezultate reproductibile, opțiunea –random-source îți permite să furnizezi un fișier cu octeți, astfel încât aceeași operațiune de amestecare să poată fi reprodusă ulterior.

Tip solutie

Permanent

Voteaza

(4 din 10 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?