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

- 2233
- 56
- Tomasz Szatkowski
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;' '

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 $;' '

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' '

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ń.
- « Jak konfigurować serwer poczty postfix i dovecot z bazą danych (MariaDB) Bezpiecznie - Część 1
- Konfigurowanie monitorowania w czasie rzeczywistym za pomocą „zwojów” dla sieci i klastrów serwerów Linux »