Właśnie zacząłem uczyć się awk i jestem trochę zdezorientowany tymi wszystkimi wersjami. Czy jest jakaś „wersja”, którą można znaleźć we wszystkich systemach uniksowych? Na przykład zwykły vi? Czy standardowy awk obsługuje opcję -F?
Właśnie zacząłem uczyć się awk i jestem trochę zdezorientowany tymi wszystkimi wersjami. Czy jest jakaś „wersja”, którą można znaleźć we wszystkich systemach uniksowych? Na przykład zwykły vi? Czy standardowy awk obsługuje opcję -F?
Odpowiedzi:
awk - najczęstszy i będzie dostępny na większości systemów uniksopodobnych, najstarszej wersji i gorszej od nowszych.
mawk - szybka implementacja AWK, której podstawa jest oparta na interpreterze bajt-kod.
nawk - podczas opracowywania języka AWK autorzy opublikowali nową wersję (stąd n - n ew awk), aby uniknąć zamieszania. Pomyśl o tym jak o Python 3.0 AWK.
gawk - w skrócie GNU awk. Jedyna wersja, w której programiści próbowali dodać obsługę i18n. Pozwolono użytkownikom pisać własne biblioteki współużytkowane w języku C, aby rozszerzyć je o własne „wtyczki”. Ta wersja jest standardową implementacją dla Linuksa, oryginalny AWK został napisany dla Uniksa v7.
Istnieją inne wersje, takie jak jawk (implementacja java), bwk (implementacja Briana W. Kernighana) i tak dalej.
file /etc/alternatives/awkpowracasymbolic link to /usr/bin/mawk
Możesz po prostu użyć awk. Jest zdefiniowany przez POSIX i dlatego musi istnieć we wszystkich systemach zgodnych z POSIX.
Ten -Fparametr jest również przez to upoważniony .
gensub(), testuj za pomocą awk-> gawki myślę, że dobrze jest iść ...
gawk --posixaby gawk działał zgodnie ze standardem POSIX. Sprawdza również, czy skrypt jest zgodny ze standardem. Możesz używać awk --posix '' 2>/dev/nullw Ubuntu bez względu na to, czy gawk, mawk lub original-awk jest używany jako awk, ale opcja posix jest rozpoznawana tylko przez gawk. --posix musi być ostatnią opcją dla original-awk. Możesz użyć awk -W posix ''z gawk i mawk.
mawk --posix ''nie powiedzie się, jeśli użyjesz mawk 1.3.3, ale powiedzie się komunikat o błędzie, jeśli użyjesz mawk 1.3.4
awkbędzie działał na prawie każdym * systemie opartym na NIX, ale dokładna specyfikacja obsługiwanych przez niego urządzeń zmieni się nieznacznie, ponieważ jest to całkowicie możliwe, po prostu zostanie dowiązany do innej wersji, podobnej do tego, jak /bin/shczęsto jest powiązany z określoną powłoką, często bashlub jedną z jego pochodne. (Dla przypomnienia, znam też wiele maszyn, do których vijest również dowiązany symbolicznie vim).
Strona AWK Wikipedii jest dobrym źródłem informacji dla początkujących do zrozumienia AWK. Pole Separator opcja „ ” jest obsługiwana we wszystkich wariantach AWK - AFAIK. -F
/usr/bin/awkuruchamia nawk, gawk lub BusyBox awk (podobny w zachowaniu do gawk).