Jak odczytać dane wejściowe AWK ze stdina w Linux - część 7

Jak odczytać dane wejściowe AWK ze stdina w Linux - część 7

W poprzednich częściach serii narzędzi AWK przyjrzeliśmy się odczytania danych wejściowych głównie z plików, ale co, jeśli chcesz odczytać dane wejściowe z Stdin.

W tej części 7 serii AWK przyjrzymy się kilku przykładom, w których można filtrować dane wyjściowe innych poleceń zamiast odczytu wejścia z pliku.

Zaczniemy od użyteczności DIR, która działa podobna do polecenia LS, w pierwszym poniższym przykładzie używamy wyjścia Dir -l Polecenie jako dane wejściowe dla AWK do wydrukowania nazwy użytkownika właściciela, nazwy grupy i plików, które posiada w bieżącym katalogu:

# dir -l | AWK 'drukuj 3 USD, 4 USD, 9 USD;' ' 
Lista plików należących do użytkownika w katalogu

Spójrz na inny przykład, w którym stosujemy wyrażenia AWK, tutaj chcemy wydrukować pliki należące do źródło Użytkownik przy użyciu wyrażenia do filtrowania ciągów jak w komendzie AWK poniżej:

# dir -l | awk '$ 3 == "root" drukuj 1 $, 3 $, 4 $, 9 $;' ' 
Pliki listy należące do użytkownika root

Polecenie powyżej obejmuje (==) Operator porównawczy, aby pomóc nam w odfiltrowaniu plików w bieżącym katalogu, które są własnością użytkownika root. Osiąga się to za pomocą wyrażenia 3 $ == ”root”.

Spójrzmy na kolejny przykład tego, gdzie używamy operatora porównawczego AWK, aby dopasować określony ciąg.

Tutaj użyliśmy narzędzia CAT do wyświetlania zawartości pliku o nazwie TecMint_deals.tekst i chcemy zobaczyć oferty typu Tech Tylko, więc uruchomimy następujące polecenia:

# Cat Tecmint_deals.txt # cat tecmint_deals.txt | AWK '$ 4 ~ /tech /print' # cat tecmint_deals.txt | awk '$ ~ /tech /print' ' 
Użyj operatora porównawczego AWK, aby dopasować ciąg

W powyższym przykładzie użyliśmy wartości ~ /wzór / Operator porównawczy, ale istnieją dwa polecenia, aby spróbować wydobyć coś bardzo ważnego.

Po uruchomieniu polecenia ze wzorem Tech Nic nie jest drukowane, ponieważ nie ma umowa tego typu, ale z Tech, otrzymujesz oferty typu Tech.

Tak zawsze uważaj, gdy korzystasz z tego operatora porównawczego, jest to wrażliwe, jak widzieliśmy powyżej.

Zamiast tego zawsze możesz użyć wyjścia innego polecenia jako wejścia dla AWK zamiast odczytania danych wejściowych z pliku, jest to bardzo proste, jak obejrzeliśmy w powyższych przykładach.

Mam nadzieję, że przykłady były wystarczająco jasne, abyś mógł zrozumieć, jeśli masz jakieś obawy, możesz je wyrazić za pomocą sekcji komentarzy poniżej i pamiętaj, aby sprawdzić następną część serii, w której przyjrzymy się Awk funkcje takie jak zmienne, Wyrażenia numeryczne I Operatorzy zadań.