awk
ist Die Standard, Allzweck-Tool zum Manipulieren von Text auf allen UNIX-ähnlichen Systemen. Es gibt verschiedene Varianten von awk, alle mit der gleichen Kernfunktionalität und einigen Unterschieden. nawk
ist sehr leider namens n ew awk, weil es, dass vor etwa 30 Jahren als Nachfolger von 1977s o ld awk (zB/bin/awk auf Solaris, auch bekannt als alte, kaputte awk benannt wurde das muss nie benutzt werden) und wird jetzt am besten vermieden, da es nicht einmal die minimale awk-Funktionalität unterstützt, die von POSIX benötigt wird (zB Zeichenklassen). Wichtige Lektion dort: Verwenden Sie niemals das Wort "neu" im Namen einer Software-Entität!
Die beste awk in diesen Tagen zu verwenden ist G NU awk, gawk
, wie sie alle POSIX-Funktionalität und eine Tonne von nützlichen Erweiterungen unterstützt, ist in der Regel vorhanden, ist sehr gut dokumentiert und hat eine massive Nutzerbasis .
WRT:
eval $(cat ${MMORPHYDIR}/${PWFILE} | nawk ' /^#BEGIN '${ENV_NAME}'/,/^#END '${ENV_NAME}'/ { print }' | egrep "${USEFULL_PARAM}")
Das ist ein völliges Durcheinander ist, tut buchstäblich ein Dutzend Dinge, die in der Schale oder in awk noch nie getan werden sollte. Der Versuch, es zu erklären, wäre wie der Versuch, jemanden zu erklären, der Beton mit einem Schraubenzieher mischt. Vergiss es, dass du es jemals gesehen hast und mach weiter.
Um awk zu lernen, lesen Sie das Buch Effective Awk Programming, 4. Auflage, von Arnold Robbins.
Heutzutage ist 'nawk' im Wesentlichen das 'einzige'' awk'; das alte "awk", für das es im Vergleich dazu "neues awk" ist, wird selten angetroffen (aber man könnte "oawk" auf einigen Systemen wie Solaris oder AIX finden; in diesem Fall ist nicht klar, ob plain 'awk' wird' nawk' oder 'oawk'). GNU Awk hat Funktionen, die nicht in 'nawk' spezifiziert sind (aber es unterstützt alle Goodies, die in' nawk' waren, aber nicht in 'oawk'). Dies hat keinen großen Einfluss auf Ihre Frage. –
Der Code zeigt [UUoC - nutzlose Verwendung von 'cat'] (https://stackoverflow.com/questions/11710552/useless-use-of-cat/). –