Zrozumienie polecenia bash shuf

Zrozumienie polecenia bash shuf

„Polecenie ShUF jest pomocne w losowym tasowaniu linii wejściowych do standardowego wyjścia. Polecenie SHUF przyjmuje dane wejściowe z plików lub standardowe wejście, losuje wejście i daje wyjście. Działa tak, jak tasowanie kart i wyciągasz losowe wyjście lub losowo układasz karty w zależności od opcji, które mu dajesz.

Shuf działa na trzy sposoby. Możesz użyć go jako zakresu, listy lub shuf. Zobaczmy różne sposoby korzystania z polecenia ShUF."

Korzystanie z polecenia bash shuf

Shuf jest częścią GNU Coreutils i możesz otworzyć jego stronę Pomoc, aby zobaczyć różne opcje, których możesz użyć.

Jeśli wykonasz polecenie ShUF bez argumentu, oczekuje wejścia na wierszu poleceń. Po naciśnięciu Ctrl + d, Daje losowe wyjście twojego wejścia. Spójrz na poniższy obraz pokazujący, jak to działa w akcji.

Możesz także połączyć shuf, kierując wyjście innej komendy. Na przykład możesz przesyłać listę plików w bieżącym katalogu za pomocą LS.

Na powyższym wyjściu zauważ, jak losowe użycie ShUF losowa zawartości naszego bieżącego katalogu.

1. Używanie shuf jako pliku

Załóżmy, że masz plik, który chcesz losować. Możesz użyć polecenia ShUF, a następnie pliku, który chcesz tasować. W takim przypadku zawartość pliku zostanie przełożona, a wyjście zostanie wyświetlone na standardowym wyjściu.

Poniżej możesz użyć składni.

Nazwa pliku $ shuf

W powyższym przykładzie tasujemy wszystkie wiersze w pliku. Jednak użycie -N flaga, możesz dodać liczbę linii, które chcesz tasować. Losujmy trzy linie i zobaczmy, jakie wyjście otrzymamy.

$ shuf -n 3 nazwa pliku

Zwróć uwagę, jak z każdym tasowaniem otrzymujemy losowe wyjście.

2. Używanie shuf jako zasięgu

Możesz tasować wejścia w danym zakresie. Musisz tylko dodać dolną i górną granicę. ShUF będzie następnie losowo losowo dane wejściowe w danym zakresie, pod warunkiem, że dodasz -I opcja.

Miejmy przykład liczby losowych od 11 do 19. W tym celu uruchomimy polecenie poniżej.

$ shuf -i 11-19

Jeśli chcesz uzyskać tylko jedno wyjście z randomizowanego zakresu, możesz użyć -N jak pokazano niżej.

$ shuf -i 11-19 -n 1

Dzięki -n możesz uzyskać tylko unikalne wyjście. Dodaj jednak flagę -R, jeśli chcesz zezwolić na powtórzenie randomizowanego wyjścia. W ten sposób umożliwiasz wyjście, aby wyjście była tą samą wartością podczas wyświetlania więcej niż jednej linii.

Oto przykład przetasowania zasięgu i umożliwienia wyświetlania trzech wyjść, które mogą być powtarzalne.

3. Używanie shuf jako listy

Kiedy chcesz dodać argumenty jako listę w swoim poleceniu ShUF, użyj -mi opcja. Argumenty, które następują po -E, będą traktowane jako dane wejściowe.

Oto przykład losowania listy liczb alfabetu.

Możesz także losować listę i zdecydować o wysyłce tylko dwóch linii wyjściowych za pomocą -N jak w poniższym wyjściu.

Zapisanie danych wyjściowych do pliku

Jeśli chcesz zapisać losowe wyjście pliku, zakresu lub listy, możesz użyć -o a następnie nazwa pliku wyjściowego.

Losujmy zasięg i zapiszmy go w nowym pliku, jak pokazano poniżej.

Wniosek

Paskowanie wejść w Linux jest możliwe dzięki poleceniu ShUF. Ten przewodnik wprowadził polecenie bash shuf i otrzymał przykłady tego, jak je używać z różnymi opcjami, aby uzyskać różne wyjścia. Mam nadzieję, że artykuł uznałeś za pomocny.