пСЙНБНДЯРБН ОНКЭГНБЮРЕКЪ ДКЪ GNU Awk
14. гЮОСЯЙ awk
хЛЕЧРЯЪ ДБЮ ОСРХ ДКЪ ГЮОСЯЙЮ awk: Я ЪБМНИ ОПНЦПЮЛЛНИ ХКХ Я НДМХЛ ХКХ АНКЕЕ ОПНЦПЮЛЛМШЛХ ТЮИКЮЛХ. гДЕЯЭ ЛШ ОПХБНДХЛ РПЮТЮПЕРШ ДКЪ НАНХУ ЯОНЯНАНБ; НАЗЕЙРШ, ГЮЙКЧВЕММШЕ Б `[...]' Б ЩРХУ РПЮТЮПЕРЮУ МЕНАЪГЮРЕКЭМШ. йПНЛЕ РПЮДХЖХНММШУ НДМНАСЙБЕММШУ ОЮПЮЛЕРПНБ Б ЯРХКЕ POSIX, gawk РЮЙФЕ ХЛЕЕР ДКХММШЕ ОЮПЮЛЕРПШ GNU. awk [ОЮПЮЛЕРПШ] -f progfile [--] file ... awk [ОЮПЮЛЕРПШ] [--] 'program' file ... лНФМН ГЮОСЯРХРЭ awk Я ОСЯРНИ ОПНЦПЮЛЛНИ: $ awk '' datafile1 datafile2 рЮЙНЕ ДЕИЯРБХЕ ХЛЕЕР ЛЮКН ЯЛШЯКЮ; awk ОПНЯРН ЛНКВЮКХБН ГЮЙНМВХРЯЪ, ЕЯКХ ЕЛС ОНДЯСМСРЭ ОСЯРСЧ ОПНЦПЮЛЛС (d.c.). еЯКХ `--lint' АШК СЙЮГЮМ Б ЙНЛЮМДМНИ ЯРПНЙЕ, gawk ЯННАЫХР, ВРН ОПНЦПЮЛЛЮ ОСЯРЮ. 14.1 оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХоЮПЮЛЕРПШ МЮВХМЮЧРЯЪ Я ЯХЛБНКЮ dash Х ЯНЯРНЪР ХГ НДМНЦН ЯХЛБНКЮ. дКХММШЕ ОЮПЮЛЕРПШ Б ЯРХКЕ GNU ЯНЯРНЪР ХГ ДБСУ dash Х ЙКЧВЕБНЦН ЯКНБЮ. йКЧВЕБШЕ ЯКНБЮ ЛНЦСР ЯНЙПЮЫЮРЭЯЪ, ЕЯКХ ЯНЙПЮЫЕМХЕ НДМНГМЮВМН НОПЕДЕКЪЕР ОЮПЮЛЕРП. еЯКХ ОЮПЮЛЕРП ХЛЕЕР ЮПЦСЛЕМР, РН МЕЛЕДКЕММН ГЮ ЙКЧВЕБШЛ ЯКНБНЛ ЯКЕДСЕР ГМЮЙ ПЮБЕМЯРБЮ (`=') Х ГМЮВЕМХЕ ЮПЦСЛЕМРЮ, ХКХ ЙКЧВЕБНЕ ЯКНБН Х ЮПЦСЛЕМР ПЮГДЕКЪЧРЯЪ ГМЮЙЮЛХ whitespace. дКЪ ЙПЮРЙНЯРХ МХФЕ ЛШ ЯЯШКЮЕЛЯЪ РНКЭЙН МЮ РПЮДХЖХНММН ЙНПНРЙХЕ ОЮПЮЛЕРПШ; НДМЮЙН ЙНПНРЙХЕ Х ДКХММШЕ ОЮПЮЛЕРПШ БГЮХЛНГЮЛЕМЪЕЛШ БН БЯЕУ ЙНМРЕЙЯРЮУ. йЮФДШИ ДКХММШИ ОЮПЮЛЕРП ДКЪ gawk ХЛЕЕР ЯННРБЕРЯРБСЧЫХИ ОЮПЮЛЕРП Б ЯРХКЕ POSIX. оЮПЮЛЕРПШ Х ХУ ГМЮВЕМХЪ РЮЙНБШ: -F fs --field-separator fsсЯРЮМЮБКХБЮЕР Б ОЕПЕЛЕММНИ FS ГМЮВЕМХЕ fs (ЯЛ. ПЮГДЕК 5.5 [сЙЮГЮМХЕ РНЦН, ЙЮЙ ПЮГДЕКЪЧРЯЪ ОНКЪ], ЯРП.44). -f source-file --file source-fileсЙЮГШБЮЕР, ВРН awk-ОПНЦПЮЛЛЮ ДНКФМЮ АШРЭ БГЪРЮ ХГ БУНДМНЦН ТЮИКЮ (БЛЕЯРН ОЕПБНЦН ЮПЦСЛЕМРЮ, МЕ ЪБКЪЧЫЕЦНЯЪ ОЮПЮЛЕРПНЛ). -v var=val --assign var=valоПХЯБНХРЭ ОЕПЕЛЕММНИ var ГМЮВЕМХЕ val ОЕПЕД МЮВЮКНЛ БШОНКМЕМХЪ ОПНЦПЮЛЛШ. щРХ ГМЮВЕМХЪ ДНЯРСОМШ БМСРПХ ОПЮБХК BEGIN (ЯЛ. ПЮГДЕК 14.2 [дПСЦХЕ ЮПЦСЛЕМРШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 165). оЮПЮЛЕРП `-v' ЛНФЕР СЯРЮМНБХРЭ РНКЭЙН НДМС ОЕПЕЛЕММСЧ, МН ЕЦН ЛНФМН ХЯОНКЭГНБЮРЭ ЛМНЦН ПЮГ, ЙЮФДШИ ПЮГ Я МНБНИ ОЕПЕЛЕММНИ, ОНДНАМН ЯКЕДСЧЫЕЛС: `awk -v foo=1 -v bar=2 ...'.-mf NNN -mr NNN сЯРЮМЮБКХБЮЕР ПЮГКХВМШЕ ОПЕДЕКШ ОЮЛЪРХ ДКЪ ГМЮВЕМХЪ NNN. тКЮФНЙ `f' СЯРЮМЮБКХБЮЕР ЛЮЙЯХЛЮКЭМНЕ ВХЯКН ОНКЕИ, Ю ТКЮФНЙ `r' СЯРЮМЮБКХБЮЕР ЛЮЙЯХЛЮКЭМШИ ПЮГЛЕП ГЮОХЯХ. щРХ ДБЮ ТКЮФЙЮ Х ОЮПЮЛЕРП `-m' БГЪРШ ХГ БЕПЯХХ Bell Labs research ДКЪ Unix awk. нМХ МСФМШ ДКЪ ЯНБЛЕЯРХЛНЯРХ, ОНЯЙНКЭЙС gawk МЕ ХЛЕЕР ОПЕДНОПЕДЕКЕММШУ КХЛХРНБ. -W gawk-optяНЦКЮЯМН ЯРЮМДЮПРС POSIX ОЮПЮЛЕРПШ, ЙНРНПШЕ ОПЕДЯРЮБКЪЧР НЯНАЕММНЯРЭ ПЕЮКХГЮЖХХ, ДНАЮБКЪЧРЯЪ Б ЙЮВЕЯРБЕ ЮПЦСЛЕМРНБ ОЮПЮЛЕРПЮ `-W'. щРХ ОЮПЮЛЕРПШ РЮЙФЕ ХЛЕЧР ЯННРБЕРЯРБСЧЫХЕ ЯРХКЧ GNU ДКХММШЕ ОЮПЮЛЕРПШ. яЛ. МХФЕ. -- НГМЮВЮЕР ЙНМЕЖ ОЮПЮЛЕРПНБ ЙНЛЮМДМНИ ЯРПНЙХ. яКЕДСЧЫХЕ ГЮ ЩРХЛ ЮПЦСЛЕМРШ МЕ ЯВХРЮЧРЯЪ ОЮПЮЛЕРПЮЛХ ДЮФЕ ЕЯКХ НМХ МЮВХМЮЧРЯЪ Я `-'. рЮЙЮЪ ХМРЕПОПЕРЮЖХЪ ОЮПШ `--' НОПЕДЕКЕМЮ ЯРЮМДЮПРНЛ POSIX. щРН ОНКЕГМН, ЕЯКХ ХЛЕЧРЯЪ ТЮИКШ Я ХЛЕМЮЛХ, МЮВХМЮЧЫХЛХЯЪ Я `-', ХКХ Б ЯЖЕМЮПХЪУ НАНКНВЙХ, ЕЯКХ БШ ХЛЕЕРЕ ХЛЕМЮ ТЮИКНБ, СЙЮГШБЮЕЛШУ ОНКЭГНБЮРЕКЕЛ, ЙНРНПШИ ЛНФЕР МЮВХМЮРЭ ХУ Я `-'. дНЯРСОМШ ЯКЕДСЧЫХЕ ЯОЕЖХТХВМШЕ ДКЪ gawk ОЮПЮЛЕРПШ: -W traditional -W compat --traditional--compat НОПЕДЕКЪЕР ПЕФХЛ ЯНБЛЕЯРХЛНЯРХ, Б ЙНРНПНЛ БЯЕ ПЮЯЬХПЕМХЪ GNU ЪГШЙЮ awk МЕДЕИЯРБХРЕКЭМШ Х gawk БЕДЕР ЯЕАЪ ОНДНАМН БЕПЯХХ Bell Labs research ДКЪ Unix awk. `--traditional' ЕЯРЭ ОПЕДОНВРХРЕКЭМЮЪ ТНПЛЮ ЩРНЦН ОЮПЮЛЕРПЮ. яЛ. ПЮГДЕК 17.5 [пЮЯЬХПЕМХЪ Б gawk, НРЯСРЯРБСЧЫХЕ Б POSIX awk], ЯРП. 256, ЦДЕ ДЕКЮЕРЯЪ НАГНП ПЮЯЬХПЕМХИ. рЮЙФЕ ЯЛ. ПЮГДЕК C.1 [яНБЛЕЯРХЛНЯРЭ БМХГ Х НРКЮДЙЮ], ЯРП. 295. -W copyleft -W copyright --copyleft --copyrightоЕВЮРЮЧР ЙНПНРЙХЕ БЕПЯХХ General Public License Х ГЮРЕЛ ОПЕЙПЮЫЮЧР ПЮАНРС. щРХ ОЮПЮЛЕРПШ ЛНЦСР АШРЭ САПЮМШ ХГ АСДСЫХУ БЕПЯХИ gawk. -W help -W usage --help --usageоЕВЮРЮЧР ЯННАЫЕМХЕ "usage" Я НАГНПНЛ ЙНПНРЙХУ Х ДКХММШУ ТНПЛ ОЮПЮЛЕРПНБ, ЙНРНПШЕ ОПХМХЛЮЕР gawk Х ГЮРЕЛ ОПНХГБНДЪР exit. -W lint --lintоПЕДСОПЕФДЮЧР Н ЙНМЯРПСЙЖХЪУ, ЙНРНПШЕ ЯНЛМХРЕКЭМШ ХКХ МЕОЕПЕМНЯХЛШ МЮ ДПСЦХЕ ПЕЮКХГЮЖХХ. мЕЙНРНПШЕ ОПЕДНЯРЕПЕФЕМХЪ БШДЮЧРЯЪ, ЙНЦДЮ gawk БМЮВЮКЕ ВХРЮЕР ОПНЦПЮЛЛС. дПСЦХЕ БШДЮЧРЯЪ ОПХ ЕЕ ХЯОНКМЕМХХ. -W lint-old --lint-oldоПЕДСОПЕФДЮЕР Н ЙНМЯРПСЙЖХЪУ, ЙНРНПШЕ МЕДНЯРСОМШ Б НПХЦХМЮКЭМНИ БЕПЯХХ 7 Unix awk (ЯЛ. ПЮГДЕК 17.1 [цКЮБМШЕ ПЮГКХВХЪ ЛЕФДС V7 Х SVR3.1], ЯРП. 253). -W posix --posixдЕИЯРБХЪ ЯРПНЦН Б ПЕФХЛЕ POSIX. нРЛЕМЪЕР БЯЕ ПЮЯЬХПЕМХЪ gawk (ОНДНАМН `--traditional'), Х ДНАЮБКЪЕР ДНОНКМХРЕКЭМН ЯКЕДСЧЫХЕ НЦПЮМХВЕМХЪ: сОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ "x МЕ ПЮЯОНГМЮЧРЯЪ (ЯЛ. ПЮГДЕК 4.2 [СОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ], ЯРП. 24). Newlines МЕ ДЕИЯРБСЧР ЙЮЙ whitespace ДКЪ ПЮГДЕКЕМХЪ ОНКЕИ, ЙНЦДЮ FS ПЮБМЮ НДМНЛС ОПНАЕКС. яХМНМХЛ func ДКЪ ЙКЧВЕБНЦН ЯКНБЮ function МЕ ПЮЯОНГМЮЕРЯЪ (ЯЛ. ПЮГДЕК 13.1 [яХМРЮЙЯХЯ НОПЕДЕКЕМХЪ ТСМЙЖХХ], ЯРП. 153). нОЕПЮРНПШ `**' Х `**=' МЕКЭГЪ СОНРПЕАКЪРЭ БЛЕЯРН `^' Х `^=' (ЯЛ. ПЮГДЕК 7.5 [юПХТЛЕРХВЕЯЙХЕ НОЕПЮРНПШ], ЯРП. 82, Ю РЮЙФЕ ПЮГДЕК 7.7 [бШПЮФЕМХЪ ОПХЯБЮХБЮМХЪ], ЯРП. 84). сЙЮГЮМХЕ `-Ft' Б ЙНЛЮМДМНИ ЯРПНЙЕ МЕ СЯРЮМЮБКХБЮЕР ГМЮВЕМХЕ FS МЮ НДХМ ЯХЛБНК tab (ЯЛ. ПЮГДЕК 5.5 [сЙЮГЮМХЪ ЙЮЙ ПЮГДЕКЪРЭ ОНКЪ], ЯРП. 44). бЯРПНЕММЮЪ ТСМЙЖХЪ fflush МЕ ДЕИЯРБСЕР (ЯЛ. ПЮГДЕК 12.4 [бЯРПНЕММШЕ ТСМЙЖХХ ДКЪ ББНДЮ/БШБНДЮ], ЯРП. 146). еЯКХ Б ЙНЛЮМДМНИ ЯРПНЙЕ СЙЮГЮМШ Х `--traditional' Х `--posix', РН АСДЕР ДЕИЯРБНБЮРЭ ПЕФХЛ `--posix'. gawk РЮЙФЕ БШДЮЯР ЯННАЫЕМХЕ, ЕЯКХ ОПХЯСРЯРБСЧР НАЮ ОЮПЮЛЕРПЮ. -W re-interval --re-intervalдНОСЯЙЮЕР ХМРЕПБЮКЭМШЕ БШПЮФЕМХЪ (ЯЛ. ПЮГДЕК 4.3 [нОЕПЮРНПШ ПЕЦСКЪПМШУ БШПЮФЕМХИ], ЯРП. 26), Б ПЕЦСКЪПМШУ БШПЮФЕМХЪУ. рЮЙ ЙЮЙ ХМРЕПБЮКЭМШЕ БШПЮФЕМХЪ РПЮДХЖХНММН МЕДНЯРСОМШ Б awk, gawk ОН СЛНКВЮМХЧ МЕ ДНОСЯЙЮЕР ХУ. щРН ОПЕДНРБПЮЫЮЕР ОПЕПШБЮМХЪ ЯРЮПШУ awk-ОПНЦПЮЛЛ. -W source program-text --source program-textхЯУНДМШИ ОПНЦПЮЛЛМШИ ЙНД ХГБКЕЙЮЕРЯЪ ХГ РЕЙЯРЮ ОПНЦПЮЛЛШ. щРНР ОЮПЮЛЕРП ОНГБНКЪЕР ЯЛЕЬХБЮРЭ ХЯУНДМШИ ЙНД Б ТЮИКЮУ Я ХЯУНДМШЛ ЙНДНЛ, ЙНРНПШИ БШ ОХЬХРЕ Б ЙНЛЮМДМНИ ЯРПНЙЕ. щРН НЯНАЕММН ОНКЕГМН, ЙНЦДЮ БШ ХЛЕЕРЕ АХАКХНРЕВМШЕ ТСМЙЖХХ, ЙНРНПШЕ УНРХРЕ ХЯОНКЭГНБЮРЭ ХГ ОПНЦПЮЛЛ Б ЙНЛЮМДМНИ ЯРПНЙЕ (ЯЛ. ПЮГДЕК 14.3 [оЕПЕЛЕММЮЪ НЙПСФЕМХЪ AWKPATH], ЯРП. 166). -W version --versionоЕВЮРЮЕР ХМТНПЛЮЖХЧ Н БЕПЯХХ ХЯОНКЭГСЕЛНИ ЙНОХХ gawk. щРН ОНГБНКЪЕР НОПЕДЕКХРЭ, ЪБКЪЕРЯЪ КХ БЮЬЮ ЙНОХЪ gawk ОНЯКЕДМЕИ ОН НРМНЬЕМХЧ Й РЕЛ, ЙНРНПШЕ ПЮЯОПНЯРПЮМЪЕР Free Software Foundation. щРН РЮЙФЕ ОНКЕГМН ДКЪ БЮЬХУ ЯННАЫЕМХИ НА НАМЮПСФЕММШУ НЬХАЙЮУ (ЯЛ. ПЮГДЕК B.7 [яННАЫЕМХЪ Н ОПНАКЕЛЮУ Х НЬХАЙЮУ], ЯРП. 292). бЯЪЙХЕ ДПСЦХЕ ОЮПЮЛЕРПШ НРЛЕВЮЧРЯЪ ЙЮЙ МЕОПЮБХКЭМШЕ Х ХЦМНПХПСЧРЯЪ. б ПЕФХЛЕ ЯНБЛЕЯРХЛНЯРХ, ЙЮЙ ЯОЕЖХЮКЭМШИ ЯКСВЮИ, ЕЯКХ ГМЮВЕМХЕ fs, СЯРЮМЮБКХБЮЕЛНЕ ОЮПЮЛЕРПНЛ `-F', ЕЯРЭ `t', РН FS СЯРЮМЮБКХБЮЕРЯЪ МЮ ЯХЛБНК tab (""t"). щРН БЕПМН РНКЭЙН ОПХ `--traditional'Х МЕБЕПМН ОПХ `--posix' (ЯЛ. ПЮГДЕК 5.5 [сЙЮГЮМХЪ Н ПЮГДЕКЕМХХ ОНКЕИ], ЯРП. 44). оЮПЮЛЕРП `-f' ЛНФЕР ХЯОНКЭГНБЮРЭЯЪ АНКЕЕ НДМНЦН ПЮГЮ Б ЙНЛЮМДМНИ ЯРПНЙЕ. еЯКХ ЩРН РЮЙ, awk ВХРЮЕР ЯБНЧ ОПНЦПЮЛЛС ХГ БЯЕУ МЮГБЮММШУ ТЮИКНБ, РЮЙ, ЙЮЙ ЕЯКХ АШ НМХ АШКХ ЯНЕДХМЕМШ Б НДХМ АНКЭЬНИ ТЮИК. щРН ОНКЕГМН ДКЪ ЯНГДЮМХЪ АХАКХНРЕЙ ТСМЙЖХИ awk. оНКЕГМШЕ ТСМЙЖХХ ЛНЦСР АШРЭ МЮОХЯЮМШ НДХМ ПЮГ Х ГЮРЕЛ БШАХПЮРЭЯЪ ХГ ЯРЮМДЮПРМНЦН ЛЕЯРЮ, БЛЕЯРН РНЦН, ВРНАШ БЙКЧВЮРЭЯЪ Б ЙЮФДСЧ ХМДХБХДСЮКЭМСЧ ОПНЦПЮЛЛС. лНФМН ОЕВЮРЮРЭ ОПНЦПЮЛЛС МЮ РЕПЛХМЮКЕ Х ОНКЭГНБЮРЭЯЪ АХАКХНРЕВМШЛХ ТСМЙЖХЪЛХ, СЙЮГШБЮЪ `-f /dev/tty'. awk АСДЕР ВХРЮРЭ file Я РЕПЛХМЮКЮ ДКЪ ХЯОНКЭГНБЮМХЪ ЙЮЙ ВЮЯРЭ awk-ОПНЦПЮЛЛШ. мЮАПЮБ ЯБНЧ ОПНЦПЮЛЛС, МЮОЕВЮРЮИРЕ Control-d (ЯХЛБНК ЙНМЖЮ ТЮИКЮ)ДКЪ СЙЮГЮМХЪ ЕЕ ЙНМЖЮ. (лНФМН РЮЙФЕ ХЯОНКЭГНБЮРЭ `-f -' ДКЪ ВРЕМХЪ ХЯУНДМНИ ОПНЦПЮЛЛШ Я ЯРЮМДЮПРМНЦН ББНДЮ, МН РНЦДЮ БШ МЕ АСДЕРЕ Б ЯНЯРНЪМХХ ХЯОНКЭГНБЮРЭ ЯРЮМДЮПРМШИ ББНД ЙЮЙ ХЯРНВМХЙ ДЮММШУ.) бЯКЕДЯРБХЕ РНЦН, ВРН МЕСДНАМН ХЯОНКЭГНБЮРЭ ЯРЮМДЮПРМШЕ ЛЕУЮМХГЛШ awk ДКЪ ЯЛЕЯХ БУНДМНЦН ТЮИКЮ Х ОПНЦПЮЛЛ ХГ ЙНЛЮМДМНИ ЯРПНЙХ, gawk ОПЕДКЮЦЮЕР ОЮПЮЛЕРП `--source'. нМ МЕ РПЕАСЕР НР БЮЯ ОПЕХЛСЫЕЯРБЕММНЦН ХЯОНКЭГНБЮМХЪ ЯРЮМДЮПРМНЦН ББНДЮ ДКЪ БУНДМНИ ОПНЦПЮЛЛШ Х ОНГБНКЪЕР КЕЦЙН ЯЛЕЬХБЮРЭ БУНДМНИ ЙНД ХГ ЙНЛЮМДМНИ ЯРПНЙХ Я ЙНДНЛ ХГ АХАКХНРЕЙХ (ЯЛ. ПЮГДЕК 14.3 [оЕПЕЛЕММЮЪ НЙПСФЕМХЪ AWKPATH], ЯРП. 166). еЯКХ МЕ СЙЮГЮМШ МХ `-f' МХ `--source', РН gawk АСДЕР ХЯОНКЭГНБЮРЭ ОЕПБШИ ЮПЦСЛЕМР Б ЙНЛЮМДМНИ ЯРПНЙЕ, ЙНРНПШИ МЕ ЪБКЪЕРЯЪ ОЮПЮЛЕРПНЛ, ЙЮЙ РЕЙЯР ХГ БУНДМНИ ОПНЦПЮЛЛШ. еЯКХ ХЛЕЕРЯЪ ОЕПЕЛЕММЮЪ НЙПСФЕМХЪ POSIXLY.CORRECT, РН gawk АСДЕР ДЕИЯРБНБЮРЭ ЯРПНЦН Б ПЕФХЛЕ POSIX, ЙЮЙ ЕЯКХ АШ АШК СЙЮГЮМ ОЮПЮЛЕРП ЙНЛЮМДМНИ ЯРПНЙХ `--posix'. лМНЦХЕ ОПНЦПЮЛЛШ GNU ХЫСР ЩРС ОЕПЕЛЕММСЧ НЙПСФЕМХЪ, БЙКЧВЮЧЫСЧ ПЕФХЛ ЯРПНЦХИ ПЕФХЛ POSIX. еЯКХ Б ЙНЛЮМДМНИ ЯРПНЙЕ СЙЮГЮРЭ `--lint' Х gawk ОЕПЕИДЕР Б ПЕФХЛ POSIX ОН POSIXLY.CORRECT, РН НМ МЮОЕВЮРЮЕР ОПЕДСОПЕФДЕМХЕ, СЙЮГШБЮЧЫЕЕ, ВРН ГЮДЕИЯРБНБЮМ ПЕФХЛ POSIX. нАШВМН ЩРС ОЕПЕЛЕММСЧ СЯРЮМЮБКХБЮЧР Б ЯРЮПРНБНЛ ТЮИКЕ НАНКНВЙХ. б ЯКСВЮЕ НАНКНВЙХ, ЯНБЛЕЯРХЛНИ Я Bourne (РЮЙНИ ЙЮЙ Bash), ЯКЕДСЕР ДНАЮБХРЭ ЩРС ЯРПНЙС Й ТЮИКС `.profile' Б БЮЬЕЛ МЮВЮКЭМНЛ ЙЮРЮКНЦЕ: POSIXLY.CORRECT=true export POSIXLY.CORRECTб ЯКСВЮЕ НАНКНВЙХ, ЯНБЛЕЯРХЛНИ Я csh, *1* ЯКЕДСЕР ДНАЮБХРЭ РЮЙСЧ ЯРПНЙС Й ТЮИКС `.login' Б БЮЬЕЛ МЮВЮКЭМНЛ ЙЮРЮКНЦЕ: setenv POSIXLY.CORRECT true14.2 дПСЦХЕ ЮПЦСЛЕМРШ ЙНЛЮМДМНИ ЯРПНЙХбЯЪЙХЕ ДНОНКМХРЕКЭМШЕ ЮПЦСЛЕМРШ ЙНЛЮМДМНИ ЯРПНЙХ МНПЛЮКЭМН ПЮЯЯЛЮРПХБЮЧРЯЪ ЙЮЙ БУНДМШЕ ТЮИКШ ДКЪ НАПЮАНРЙХ Б СЙЮГЮММНЛ ОНПЪДЙЕ. нДМЮЙН, ЮПЦСЛЕМР, ЙНРНПШИ ХЛЕЕР БХД var=value, ОПХЯБЮХБЮЕР ГМЮВЕМХЕ value ОЕПЕЛЕММНИ var Х БНБЯЕ МЕ НГМЮВЮЕР МХЙЮЙНИ ТЮИК. бЯЕ РЮЙХЕ ЮПЦСЛЕМРШ ДНЯРСОМШ БЮЬЕИ awk-ОПНЦПЮЛЛЕ Б ЛЮЯЯХБЕ ARGV (ЯЛ. ЦКЮБС 10 [бЯРПНЕММШЕ ОЕПЕЛЕММШЕ], ЯРП. 115). оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ Х РЕЙЯР ОПНЦПЮЛЛШ ( ЕЯКХ НМ ОПХЯСРЯРБНБЮК) МЕ ОНОЮДЮЧР Б ARGV. бЯЕ ДПСЦХЕ ЮПЦСЛЕМРШ, БЙКЧВЮЪ ОПХЯБЮХБЮМХЪ ОЕПЕЛЕММШЛ, ОНОЮДЮЧР Б МЕЦН. оПХ НАПЮАНРЙЕ КЧАНЦН ЩКЕЛЕМРЮ ARGV gawk СЯРЮМЮБКХБЮЕР ОЕПЕЛЕММСЧ ARGIND МЮ ХМДЕЙЯ РЕЙСЫЕЦН ЩКЕЛЕМРЮ ARGV. пЮГКХВХЕ ЛЕФДС ЮПЦСЛЕМРЮЛХ ХЛЕМ ТЮИКНБ Х ОПХЯБЮХБЮМХИ ОЕПЕЛЕММШЛ НОПЕДЕКЪЕРЯЪ, ЙНЦДЮ awk ЯНАХПЮЕРЯЪ НРЙПШРЭ ЯКЕДСЧЫХИ БУНДМНИ ТЮИК. б ЩРНИ РНВЙЕ БШОНКМЕМХЪ ОПНЦПЮЛЛШ НМ ОПНБЕПЪЕР "file name" ВРНАШ ОПНБЕПХРЭ, МЕ ЕЯРЭ КХ ЩРН ОПХЯБЮХБЮМХЕ ОЕПЕЛЕММНИ; ЕЯКХ РЮЙ, РН awk БЛЕЯРН ВРЕМХЪ ТЮИКЮ ОПХЯБЮХБЮЕР ГМЮВЕМХЕ ОЕПЕЛЕММНИ. оНЩРНЛС ОЕПЕЛЕММШЕ ОНКСВЮЧР ГМЮВЕМХЪ ТЮЙРХВЕЯЙХ ОНЯКЕ ОПНВРЕМХЪ БЯЕУ ТЮИКНБ, СЙЮГЮММШУ ПЮМЕЕ ЩРНЦН ОПХЯБЮХБЮМХЪ. б ВЮЯРМНЯРХ, ГМЮВЕМХЪ РЮЙХУ ОЕПЕЛЕММШУ МЕДНЯРСОМШ БМСРПХ ОПЮБХКЮ BEGIN (ЯЛ. ПЮГДЕК 8.1.5 [яОЕЖХЮКЭМШЕ НАПЮГЖШ BEGIN Х END, ЯРП. 100), ОНРНЛС ВРН РЮЙХЕ ОПЮБХКЮ БШОНКМЪЧРЯЪ ДН МЮВЮКЮ ЯЙЮМХПНБЮМХЪ ЯОХЯЙЮ ЮПЦСЛЕМРНБ. б ГМЮВЕМХЪУ ОЕПЕЛЕММШУ, ГЮДЮММШУ Б ЙНЛЮМДМНИ ЯРПНЙЕ, НАПЮАЮРШБЮЧРЯЪ СОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ (d.c.) (ЯЛ. ПЮГДЕК 4.2 [сОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ], ЯРП. 24). б МЕЙНРНПШУ ПЮММХУ ПЕЮКХГЮЖХЪУ, ЙНЦДЮ ОПХЯБЮХБЮМХЪ ОЕПЕЛЕММШЛ БЯРПЕВЮКХЯЭ ДН ХЛЕМ ТЮИКНБ, НМХ БШОНКМЪКХЯЭ ДН БШОНКМЕМХЪ ОПЮБХК BEGIN. рЕЛ ЯЮЛШЛ ОНБЕДЕМХЕ awk АШКН МЕОНЯКЕДНБЮРЕКЭМШЛ. 1 мЕ ПЕЙНЛЕМДСЕРЯЪ.мЕЙНРНПШЕ ОПХЯБЮХБЮМХЪ ХГ ЙНЛЮМДМНИ ЯРПНЙХ НЙЮГШБЮКХЯЭ ДНЯРСОМШЛХ БМСРПХ ОПЮБХК BEGIN, Ю ДПСЦХЕ МЕР. мЕЙНРНПШЕ ОПХКНФЕМХЪ ГЮБХЯЕКХ НР ЩРНЦН "ЯБНИЯРБЮ". йНЦДЮ awk АШКЮ ХГЛЕМЕМЮ ДКЪ СЯРПЮМЕМХЪ ОПНРХБНПЕВХИ, ОЮПЮЛЕРП `-v' АШК ДНАЮБКЕМ ДКЪ НАЕЯОЕВЕМХЪ ОПХКНФЕМХИ, ЙНРНПШЕ ГЮБХЯЕКХ НР ОПЕФМЕЦН ОНБЕДЕМХЪ. бНГЛНФМНЯРЭ ОПХЯБЮХБЮМХЪ ХГ ЙНЛЮМДМНИ ЯРПНЙХ МЮХАНКЕЕ СДНАМЮ ДКЪ ОПХЯБЮХБЮМХЪ РЮЙХЛ ОЕПЕЛЕММШЛ ЙЮЙ RS, OFS Х ORS, ЙНРНПШЕ СОПЮБКЪЧР ТНПЛЮРНЛ ББНДЮ Х БШБНДЮ, ОЕПЕД ОПНЯЛНРПНЛ ТЮИКНБ Я ДЮММШЛХ. щРН РЮЙФЕ ОНКЕГМН ДКЪ ОПНБЕПЙХ ЯНЯРНЪМХЪ, ЕЯКХ МЕНАУНДХЛШ ОНБРНПМШЕ ОПНЯЛНРПШ ТЮИКНБ Я ДЮММШЛХ. мЮОПХЛЕП: awk 'pass == 1 - pass 1 stuff "" pass == 2 - pass 2 stuff ""' pass=1 mydata pass=2 mydata хЛЕЪ БНГЛНФМНЯРЭ ОПХЯБЮХБЮМХЪ ОЕПЕЛЕММШЛ, МЕ НАЪГЮРЕКЭМН ОНКЭГНБЮРЭЯЪ ОЮПЮЛЕРПНЛ `-F' ДКЪ СЯРЮМНБЙХ ГМЮВЕМХЪ FS. нМ НЯРЮЕРЯЪ ДКЪ ХЯРНПХВЕЯЙНИ ЯНБЛЕЯРХЛНЯРХ. 14.3 оЕПЕЛЕММЮЪ НЙПСФЕМХЪ AWKPATHб ОПЕДШДСЫЕЛ ПЮГДЕКЕ ЦНБНПХКНЯЭ Н РНЛ, ЙЮЙ ОПНЦПЮЛЛМШЕ ТЮИКШ awk ЛНЦСР АШРЭ МЮГБЮМШ Б ЙНЛЮМДМНИ ЯРПНЙЕ Я ОНЛНЫЭЧ ОЮПЮЛЕРПЮ `-f'. б АНКЭЬХМЯРБЕ ПЕЮКХГЮЖХИ awk ЛНФМН СЙЮГЮРЭ РНВМШИ ОСРЭ Й ЙЮФДНЛС ОПНЦПЮЛЛМНЛС ТЮИКС, ЙНЦДЮ НМ МЕ КЕФХР Б РЕЙСЫЕЛ ЙЮРЮКНЦЕ. мН Б gawk, ЕЯКХ ХЛЪ ТЮИКЮ, СЙЮГЮММНЦН ОЮПЮЛЕРПНЛ `-f', МЕ ЯНДЕПФХР `/', РН gawk ОПНЯЛЮРПХБЮЕР ЯОХЯНЙ ЙЮРЮКНЦНБ (МЮГШБЮЕЛШИ search path) НДХМ ГЮ ДПСЦХЛ, НРШЯЙХБЮЪ ТЮИК Я СЙЮГЮММШЛ ХЛЕМЕЛ. search path ЕЯРЭ ЖЕОНВЙЮ, ЯНЯРНЪЫЮЪ ХГ ХЛЕМ ЙЮРЮКНЦНБ, ПЮГДЕКЕММШУ ДБНЕРНВХЪЛХ. gawk ОНКСВЮЕР ОСРЭ Й МЕИ ХГ ОЕПЕЛЕММНИ НЙПСФЕМХЪ AWKPATH. еЯКХ ЩРНИ ОЕПЕЛЕММНИ МЕР, РН gawk ХЯОНКЭГСЕР ОСРЭ ОН СЛНКВЮМХЧ, ЙНРНПШИ ЕЯРЭ `.:/usr/local/share/awk'. *2* (оПНЦПЮЛЛШ, МЮОХЯЮММШЕ ДКЪ ХЯОНКЭГНБЮМХЪ ЯХЯРЕЛМШЛ ЮДЛХМХЯРПЮРНПНЛ, ДНКФМШ ХЯОНКЭГНБЮРЭ ОЕПЕЛЕММСЧ AWKPATH, ЙНРНПЮЪ МЕ ЯНДЕПФХР РЕЙСЫХИ ЙЮРЮКНЦ, `.'.) бНГЛНФМНЯРЭ ОНХЯЙЮ ОСРХ НЯНАЕММН СДНАМЮ ДКЪ ОНЯРПНЕМХЪ АХАКХНРЕЙ ОНКЕГМШУ ТСМЙЖХИ awk. аХАКХНРЕВМШЕ ТЮИКШ ЛНЦСР АШРЭ ОНЛЕЫЕМШ Б ЯРЮМДЮПРМШИ ЙЮРЮКНЦ МЮ ОСРХ ОН СЛНКВЮМХЧ Х ГЮРЕЛ СЙЮГЮМШ Б ЙНЛЮМДМНИ ЯРПНЙЕ ЙНПНРЙХЛ ТЮИКНБШЛ ХЛЕМЕЛ. хМЮВЕ ДКЪ ЙЮФДНЦН ТЮИКЮ МСФМН АСДЕР СЙЮГШБЮРЭ ОНКМНЕ ТЮИКНБНЕ ХЛЪ. хЯОНКЭГСЪ НАЮ ОЮПЮЛЕРПЮ, `--source' Х `-f', БЮЬЮ awk-ОПНЦПЮЛЛЮ Б ЙНЛЮМДМНИ ЯРПНЙЕ ЛНФЕР ХЯОНКЭГНБЮРЭ ЯПЕДЯРБЮ ТЮИКНБНИ АХАКХНРЕЙХ awk. яЛ. цКЮБС 15 [аХАКХНРЕЙЮ ТСМЙЖХИ awk], ЯРП. 169. 2 бЮЬЮ БЕПЯХЪ gawk ЛНФЕР ХЯОНКЭГНБЮРЭ ЙЮРЮКНЦ, НРКХВМШИ НР `/usr/local/share/awk'; ЩРН ГЮБХЯХР НР РНЦН, ЙЮЙ gawk АШК ОНЯРПНЕМ Х СЯРЮМНБКЕМ. тЮЙРХВЕЯЙХИ ЙЮРЮКНЦ АСДЕР ГМЮВЕМХЕЛ `$(datadir)', ЦЕМЕПХПНБЮММШЛ, ЙНЦДЮ gawk ЙНМТХЦСПХПНБЮКЮЯЭ. бЕПНЪРМН, БЮЛ МЕ ЯРНХР ГЮАНРХРЭЯЪ НА ЩРНЛ. оНХЯЙ ОСРХ МЕ ОПНХГБНДХРЯЪ, ЕЯКХ gawk ПЮАНРЮЕР Б ПЕФХЛЕ ЯНБЛЕЯРХЛНЯРХ. щРН РЮЙФЕ БЕПМН ДКЪ НАНХУ ОЮПЮЛЕРПНБ `--traditional' Х `--posix'. яЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161. гюлевюмхе: ЕЯКХ БШ УНРХРЕ, ВРНАШ МЮУНДХКХЯЭ ТЮИКШ ХГ РЕЙСЫЕЦН ЙЮРЮКНЦЮ, БШ ДНКФМШ БЙКЧВХРЭ РЕЙСЫХИ ЙЮРЮКНЦ Б ОСРЭ ОНХЯЙЮ, КХАН БЙКЧВХБ ЪБМН `.' Б ОСРЭ, КХАН МЮОХЯЮБ МСКЕБНИ БУНД Б ОСРЭ. (мСКЕБНИ БУНД СЙЮГШБЮЕРЯЪ ОНЯПЕДЯРБНЛ МЮВЮКЮ ХКХ НЙНМВЮМХЪ ОСРХ ДБНЕРНВХЕЛ, ХКХ ОНЛЕЫЕМХЕЛ ДБСУ ДБНЕРНВХИ ОНДПЪД (`::').) еЯКХ РЕЙСЫХИ ЙЮРЮКНЦ МЕ БЙКЧВЕМ Б ОСРЭ ОНХЯЙЮ, РН ТЮИКШ Б РЕЙСЫЕЛ ЙЮРЮКНЦЕ МЕ АСДСР МЮИДЕМШ. рЮЙНИ ЛЕУЮМХГЛ ОНХЯЙЮ ХДЕМРХВЕМ НАНКНВЕВМНЛС. мЮВХМЮЪ Я БЕПЯХХ 3.0, ЕЯКХ AWKPATH МЕ НОПЕДЕКЕМ Б НЙПСФЕМХХ, gawk ОНЛЕЯРХР ЯБНИ ОСРЭ ОН СЛНКВЮМХЧ Б ENVIRON["AWKPATH"]. щРН ОНГБНКЪЕР КЕЦЙН НОПЕДЕКХРЭ ТЮЙРХВЕЯЙХИ ОСРЭ ОНХЯЙЮ, ХЯОНКЭГСЕЛШИ gawk. 14.4 сЯРЮПЕБЬХЕ ОЮПЮЛЕРПШ Х/ХКХ БНГЛНФМНЯРХб ЩРНЛ ПЮГДЕКЕ НОХЯШБЮЧРЯЪ БНГЛНФМНЯРХ Х/ХКХ ОЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ ХГ ОПЕФМХУ БШОСЯЙНБ gawk, ЙНРНПШЕ ХКХ МЕДНЯРСОМШ Б РЕЙСЫЕИ БЕПЯХХ, ХКХ ЕЫЕ ОНДДЕПФХБЮЧРЯЪ, МН МЕ ПЕЙНЛЕМДСЧРЯЪ (ХЛЕЪ ББХДС, ВРН ХУ МЕ АСДЕР Б ЯКЕДСЧЫЕЛ БШОСЯЙЕ). б БЕПЯХХ 3.0.4 gawk МЕ ХЛЕЕРЯЪ ОЮПЮЛЕРПНБ ЙНЛЮМДМНИ ЯРПНЙХ ХКХ ДПСЦХУ МЕ ПЕЙНЛЕМДСЕЛШУ ВЕПР ХГ ОПЕФМЕИ БЕПЯХХ gawk. рЮЙХЛ НАПЮГНЛ, МЮЯРНЪЫХИ ПЮГДЕК Б НЯМНБМНЛ ОПЕДЯРЮБКЪЕР ЛЕЯРН ДКЪ ЯПЕДЯРБ, ЙНРНПШЕ АСДСР НРЯСРЯРБНБЮРЭ Б АСДСЫХУ БЕПЯХЪУ gawk. 14.5 мЕДНЙСЛЕМРХПНБЮММШЕ ОЮПЮЛЕРПШ Х ЯБНИЯРБЮщРНР ПЮГДЕК МЮЛЕПЕММН НЯРЮБКЕМ ОСЯРШЛ.14.6 хГБЕЯРМШЕ НЬХАЙХ Б gawkоЮПЮЛЕРП `-F' ДКЪ ХГЛЕМЕМХЪ ГМЮВЕМХЪ FS (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161) МЕ НАЪГЮРЕКЭМН ХЛЕЕР ЯБНИЯРБН ОПХЯБЮХБЮМХЪ ОЕПЕЛЕММШЛ ЙНЛЮМДМНИ ЯРПНЙХ; НМ НЯРЮЕРЯЪ РНКЭЙН ДКЪ ЯНБЛЕЯРХЛНЯРХ БМХГ. еЯКХ БЮЬЮ ЯХЯРЕЛЮ ТЮЙРХВЕЯЙХ ХЛЕЕР ОНДДЕПФЙС ДКЪ `/dev/fd' Х ЯННРБЕРЯРБСЧЫХУ ТЮИКНБ `/dev/stdin', `/dev/stdout' Х `/dev/stderr', ЛНФМН ОНКСВЮРЭ ДПСЦХЕ БШУНДШ НР gawk ОН ЯПЮБМЕМХЧ Я РЕЛХ, ЙНРНПШЕ ЛНФМН ОНКСВХРЭ Б ЯХЯРЕЛЕ АЕГ ЩРХУ ТЮИКНБ. йНЦДЮ gawk ХМРЕПОПЕРХПСЕР ЩРХ ТЮИКШ БМСРПЕММХЛ НАПЮГНЛ, НМЮ ЯХМУПНМХГХПСЕР БШБНД ОН ЯРЮМДЮПРМНЛС БШУНДС Я БШБНДНЛ Б `/dev/stdout', Б РН БПЕЛЪ ЙЮЙ Б ЯХЯРЕЛЮУ Я РЮЙХЛХ ТЮИКЮЛХ БШБНД ДЕИЯРБХРЕКЭМН ХДЕР Б ПЮГКХВМШЕ НРЙПШРШЕ ТЮИКШ (ЯЛ. ПЮГДЕК 6.7 [яОЕЖХЮКЭМШЕ ХЛЕМЮ ТЮИКНБ Б gawk], ЯРП. 72). яХМРЮЙЯХВЕЯЙХ МЕОПЮБХКЭМШЕ НДМН-ЯХЛБНКЭМШЕ ОПНЦПЮЛЛШ ХЛЕЧР РЕМДЕМЖХЧ ОЕПЕОНКМЪРЭ ЯРЕЙ ПЮГАНПЮ Х ЦЕМЕПХПСЧР АЕЯОНКЕГМШЕ ЯННАЫЕМХЪ. й СДХБКЕМХЧ, РЮЙХЕ ОПНЦПЮЛЛШ Б ЯЮЛНЛ НАЫЕЛ ЯКСВЮЕ РПСДМН ОНДДЮЧРЯЪ ДХЮЦМНГХПНБЮМХЧ, Х ЩТТЕЙР НР МЕЦН МЕ ЯРНХР ГЮРПЮВЕММНЦН РПСДЮ. |
<<< | нЦКЮБКЕМХЕ | яРПЮМХЖШ: 14 15 | >>> |