пСЙНБНДЯРБН ОНКЭГНБЮРЕКЪ ДКЪ GNU Awk
4. пЕЦСКЪПМШЕ БШПЮФЕМХЪнЦКЮБКЕМХЕ
пЕЦСКЪПМНЕ БШПЮФЕМХЕ, ЯНЙПЮЫЕММН regexp, ЕЯРЭ ЯОНЯНА НОХЯЮМХЪ ЛМНФЕЯРБЮ ЖЕОНВЕЙ. оНЯЙНКЭЙС ПЕЦСКЪПМШЕ БШПЮФЕМХЪ ОПЕДЯРЮБКЪЧР ЯСЫЕЯРБЕММСЧ ВЮЯРЭ awk-ОПНЦПЮЛЛХПНБЮМХЪ, НОХЯЮМХЕ ХУ ТНПЛЮРЮ Х ХЯОНКЭГНБЮМХЕ ГЮЯКСФХБЮЕР ОПЕДЯРЮБКЕМХЪ Б НРДЕКЭМНИ ЦКЮБЕ. пЕЦСКЪПМНЕ БШПЮФЕМХЕ, ГЮЙКЧВЕММНЕ Б ЯКЕЬХ (`/') ОПЕДЯРЮБКЪЕР awk-НАПЮГЕЖ, ЙНРНПШИ ЯННРБЕРЯРБСЕР БУНДМШЛ ГЮОХЯЪЛ, РЕЙЯРШ ЙНРНПШУ ОПХМЮДКЕФЮР СОНЛЪМСРНЛС ЛМНФЕЯРБС. оПНЯРЕИЬЕЕ ПЕЦСКЪПМНЕ БШПЮФЕМХЕ ЕЯРЭ ОНЯКЕДНБЮРЕКЭМНЯРЭ АСЙБ, ЖХТП ХКХ Х РЕУ Х ДПСЦХУ. рЮЙНЕ regexp ЯННРБЕРЯРБСЕР ЙЮФДНИ ЖЕОНВЙЕ, ЯНДЕПФЮЫЕИ ЩРС ОНЯКЕДНБЮРЕКЭМНЯРЭ. рЮЙ, regexp `foo' ЯННРБЕРЯРБСЕР БЯЪЙНИ ЖЕОНВЙЕ, ЯНДЕПФЮЫЕИ `foo'. оНЩРНЛС НАПЮГЕЖ /foo/ ЯННРБЕРЯРБСЕР БЯЪЙНИ БУНДМНИ ГЮОХЯХ, ЯНДЕПФЮЫЕИ РПНИЙС ЯХЛБНКНБ `foo' ЦДЕ-КХАН Б ГЮОХЯХ. дПСЦХЕ БХДШ regexp ОНГБНКЪЧР СЙЮГШБЮРЭ АНКЕЕ ЯКНФМШЕ ЙКЮЯЯШ ЖЕОНВЕЙ. бМЮВЮКЕ ОПХЛЕПШ АСДСР ОПНЯРШЛХ. йНЦДЮ ЛШ НАЗЪЯМХЛ РНВМЕЕ ПЮАНРС ПЕЦСКЪПМШУ БШПЮФЕМХИ, ЛШ ОПХБЕДЕЛ АНКЕЕ ЯКНФМШЕ ОПХЛЕПШ. 4.1 йЮЙ ХЯОНКЭГНБЮРЭ ПЕЦСКЪПМШЕ БШПЮФЕМХЪпЕЦСКЪПМНЕ БШПЮФЕМХЕ ЛНФЕР ХЯОНКЭГНБЮРЭЯЪ ЙЮЙ НАПЮГЕЖ, ЕЯКХ ЕЦН ГЮЙКЧВХРЭ Б ЯКЕЬХ: $ awk '/foo/ - print $2 ""' BBS-list a 555-1234 a 555-6699 a 555-6480 a 555-2127 пЕЦСКЪПМШЕ БШПЮФЕМХЪ ЛНЦСР РЮЙФЕ ХЯОНКЭГНБЮРЭЯЪ Б БШПЮФЕМХЪУ ЯННРБЕРЯРБХЪ. щРХ БШПЮФЕМХЪ ОНГБНКЪЧР БЮЛ СЙЮГШБЮРЭ ЖЕОНВЙХ, ЙНРНПШЛ НМХ ЯННРБЕРЯРБСЧР; щРН МЕ НАЪГЮРЕКЭМН ЖЕКЮЪ РЕЙСЫЮЪ БУНДМЮЪ ГЮОХЯЭ. дБЮ НОЕПЮРНПЮ, `~' Х `!~', ОПНХГБНДЪР ЯПЮБМЕМХЕ ПЕЦСКЪПМШУ БШПЮФЕМХИ. бШПЮФЕМХЪ Я ЩРХЛХ НОЕПЮЖХЪЛХ ЛНЦСР ХЯОНКЭГНБЮРЭЯЪ Б ЙЮВЕЯРБЕ НАПЮГЖНБ ХКХ Б ЯНЯРЮБЕ НОЕПЮРНПНБ if, while, for Х do. exp ~ /regexp/ ХЛЕЕР ГМЮВЕМХЕ true, ЕЯКХ БШПЮФЕМХЕ exp (ПЮЯЯЛЮРПХБЮЕЛНЕ ЙЮЙ ЖЕОНВЙЮ) ЯННРБЕРЯРБСЕР regexp. яКЕДСЧЫХИ ОПХЛЕП ЯННРБЕРЯРБСЕР (РН ЕЯРЭ БШАХПЮЕР) БЯЕ БУНДМШЕ ГЮОХЯХ, ХЛЕЧЫХЕ АСЙБС БЕПУМЕЦН ПЕЦХЯРПЮ `J' Б КЧАНИ ОНГХЖХХ Б ОЕПБНЛ ОНКЕ: $ awk '$1 ~ /J/' inventory-shipped a Jan 13 25 15 115 a Jun 31 42 75 492 a Jul 24 34 67 436 a Jan 21 36 64 620 рН ФЕ ЯЮЛНЕ ДЕКЮЕР ОПНЦПЮЛЛЮ: awk '- if ($1 ~ /J/) print ""' inventory-shipped бШПЮФЕМХЕ exp !~ /regexp/ ХЛЕЕР ГМЮВЕМХЕ true, ЕЯКХ БШПЮФЕМХЕ exp (ПЮЯЯЛЮРПХБЮЕЛНЕ ЙЮЙ ЖЕОНВЙЮ ЯХЛБНКНБ) МЕ ЯННРБЕРЯРБСЕР regexp. яКЕДСЧЫХИ ОПХЛЕП НРАХПЮЕР БЯЕ БУНДМШЕ ГЮОХЯХ, Б ЙНРНПШУ ОЕПБНЕ ОНКЕ МЕ ЯНДЕПФХР АСЙБС БЕПУМЕЦН ПЕЦХЯРПЮ `J': $ awk '$1 !~ /J/' inventory-shipped a Feb 15 32 24 226 a Mar 15 24 34 228 a Apr 31 52 63 420 a May 16 34 29 208... йНЦДЮ regexp ГЮЙКЧВЕМН Б ЯКЕЬХ, ОНДНАМН /foo/, ЛШ МЮГШБЮЕЛ ЕЦН ЙНМЯРЮМРНИ regexp, ОНДНАМН ВХЯКЕММНИ ЙНМЯРЮМРЕ 5.27, Ю "foo" ЕЯРЭ ЯРПНЙНБЮЪ ЙНМЯРЮМРЮ. 4.2 сОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХмЕЙНРНПШЕ ЯХЛБНКШ МЕ ЛНЦСР АШРЭ БЙКЧВЕМШ ОПЪЛН Б ЯРПНЙНБШЕ ЙНМЯРЮМРШ ("foo") ХКХ ЙНМЯРЮМРШ regexp (/foo/). бЛЕЯРН ЩРНЦН НМХ ОПЕДЯРЮБКЪЧРЯЪ Я ОНЛНЫЭЧ СОПЮБКЪЧЫХУ ОНЯКЕДНБЮРЕКЭМНЯРЕИ, ЙНРНПШЕ ЪБКЪЧРЯЪ ЯХЛБНКЭМШЛХ ОНЯКЕДНБЮРЕКЭМНЯРЪЛХ, МЮВХМЮЧЫХЛХЯЪ Я НАПЮРМНЦН ЯКЕЬ (`"'). нДМН ХГ МЮГМЮВЕМХИ СОПЮБКЪЧЫХУ ОНЯКЕДНБЮРЕКЭМНЯРЕИ --- БЙКЧВЮРЭ ГМЮЙ ДБНИМНИ ЙЮБШВЙХ Б ЯРПНЙНБСЧ ЙНМЯРЮМРС. оНЯЙНКЭЙС ОПНЯРН ДБНИМЮЪ ЙЮБШВЙЮ НЙЮМВХБЮЕР ЖЕОНВЙС, МСФМН СОНРПЕАКЪРЭ `""' ДКЪ ОПЕДЯРЮБКЕМХЪ ЯХЛБНКЮ ДБНИМНИ ЙЮБШВЙХ ЙЮЙ ВКЕМЮ ЖЕОНВЙХ. мЮОПХЛЕП: $ awk 'BEGIN - print "He said ""hi!"" to her." ""' a He said "hi!" to her. нАПЮРМШИ ЯКЕЬ ЕЯРЭ ДПСЦНИ ЯХЛБНК, ЙНРНПШИ МЕ ЛНФЕР АШРЭ БЙКЧВЕМ МНПЛЮКЭМН; МСФМН ОХЯЮРЭ `""', ВРНАШ БЙКЧВХРЭ НАПЮРМШИ ЯКЕЬ Б ЖЕОНВЙС ХКХ regexp. рЮЙ, ЖЕОНВЙЮ, ЯНЯРНЪЫЮЪ ХГ ДБСУ ЯХЛБНКНБ `"' Х `"', ДНКФМЮ АШРЭ МЮОХЯЮМЮ ЙЮЙ """""". дПСЦЮЪ ПНКЭ НАПЮРМНЦН ЯКЕЬ ЯНЯРНХР Б ОПЕДЯРЮБКЕМХХ МЕОЕВЮРМШУ ЯХЛБНКНБ, РЮЙХУ ЙЮЙ tab ХКХ newline. уНРЪ МХВЕЦН МЕ ОПЕОЪРЯРБСЕР БЮЛ БЯРЮБКЪРЭ АНКЭЬХМЯРБН МЕОЕВЮРМШУ ЯХЛБНКНБ Б ЯРПНЙНБСЧ ЙНМЯРЮМРС ХКХ ЙНМЯРЮМРС regexp, НМХ ЛНЦСР БШЦКЪДЕРЭ ЯРПЮММН. оПХБЕДЕЛ ГДЕЯЭ РЮАКХЖС БЯЕУ СОПЮБКЪЧЫХУ ОНЯКЕДНБЮРЕКЭМНЯРЕИ, ХЯОНКЭГСЕЛШУ Б awk, Х РНЦН, ВРН НМХ ОПЕДЯРЮБКЪЧР. еЯКХ МЕ СЙЮГЮМН ДПСЦНЕ, БЯЕ ЩРХ СОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ ОПХЛЕМЪЧРЯЪ Б ЯРПНЙНБШУ Х Б regexp ЙНМЯРЮМРЮУ. "" НАПЮРМШИ ЯКЕЬ, `"'. "a яХЛБНК "БМХЛЮМХЕ", Control-g, ASCII code 7 (BEL). "b Backspace, Control-h, ASCII code 8 (BS). "f Formfeed, Control-l, ASCII code 12 (FF). "n Newline, Control-j, ASCII code 10 (LF). "r Carriage return, Control-m, ASCII code 13 (CR). "t Horizontal tab, Control-i, ASCII code 9 (HT). "v Vertical tab, Control-k, ASCII code 11 (VT). "nnn бНЯЭЛЕПХВМНЕ ГМЮВЕМХЕ nnn, ЦДЕ nnn ЕЯРЭ НДМЮ-РПХ ЖХТПШ ЛЕФДС `0' Х `7'. мЮОПХЛЕП, ЙНД ДКЪ ASCII ESC (escape) ЯХЛБНКЮ ЕЯРЭ `"033'. "xhh... ьЕЯРМЮДЖЮРЕПХВМНЕ ГМЮВЕМХЕ hh, ЦДЕ hh ЕЯРЭ ЬЕЯРМЮДЖЮРЕПХВМШЕ ЖХТПШ (НР `0' ДН `9' Х НР `A' ДН `F' ХКХ НР `a' ДН `f'). оНДНАМН ЮМЮКНЦХВМШЛ ЙНМЯРПСЙЖХЪЛ Б ANSI C, СОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ ОПНДНКФЮЧРЯЪ, ОНЙЮ МЕ ДНЯРХЦЮЕРЯЪ ОЕПБШИ МЕ-ЬЕЯРМЮДЖЮРЕПХВМШИ ЯХЛБНК. нДМЮЙН, СОНРПЕАКЕМХЕ АНКЭЬЕ ВЕЛ ДБСУ ЬЕЯРМЮДЖЮРЕПХВМШУ ЖХТП ОПХБНДХР Й МЕНОПЕДЕКЕММНЛС ПЕГСКЭРЮРС. ( `"x' СОПЮБКЪЧЫЮЪ ОНЯКЕДНБЮРЕКЭМНЯРЭ МЕДНОСЯРХЛЮ Б POSIX awk.) "/ яКЕЬ (МЕНАУНДХЛ РНКЭЙН Б ЙНМЯРЮМРЮУ regexp). хЯОНКЭГСЕРЯЪ, ЕЯКХ БШ УНРХРЕ МЮОХЯЮРЭ regexp-ЙНМЯРЮМРС, ЯНДЕПФЮЫСЧ ЯКЕЬ. оНЯЙНКЭЙС regexp НЦПЮМХВХБЮЕРЯЪ ЯКЕЬЕЛ, БШ ДНКФМШ НРЛЕРХРЭ ЯКЕЬ ЙЮЙ ВЮЯРЭ НАПЮГЖЮ, ВРНАШ ОНАСДХРЭ awk ОПНДНКФЮРЭ НАПЮАНРЙС regexp. "" дБНИМЮЪ ЙЮБШВЙЮ (МЕНАУНДХЛЮ РНКЭЙН ДКЪ ЯРПНЙНБШУ ЙНМЯРЮМР). б gawk ХЛЕЧРЯЪ ЕЫЕ ДБЕ ЯХЛБНКЭМШЕ ОНЯКЕДНБЮРЕКЭМНЯРХ, ЙНРНПШЕ МЮВХМЮЧРЯЪ Я НАПЮРМНЦН ЯКЕЬ Х ХЛЕЧР ЯОЕЖХЮКЭМНЕ ГМЮВЕМХЕ Б regexp. яЛ. ПЮГДЕК 4.4 [дНОНКМХРЕКЭМШЕ НОЕПЮРНПШ Б Regexp, РНКЭЙН ДКЪ gawk], ЯРП. 31. вРН ОПНХГНИДЕР, ЕЯКХ БШ ОНЛЕЯРХРЕ Б ЯРПНВМНИ ЙНМЯРЮМРЕ НАПЮРМШИ ЯКЕЬ ОЕПЕД РЕЛ, ВРН МЕ ЪБКЪЕРЯЪ НДМХЛ ХГ ЯХЛБНКНБ, ОЕПЕВХЯКЕММШУ БШЬЕ? б POSIX awk ЩРН МЕ НОПЕДЕКЕМН МЮЛЕПЕММН. хЛЕЧРЯЪ ДБЕ БНГЛНФМНЯРХ: 1. бШВЕПЙМСРЭ НАПЮРМШИ ЯКЕЬ. щРН ДЕКЮЧР НАЮ Unix awk Х gawk. мЮОПХЛЕП, "a"qc" РН ФЕ ЯЮЛНЕ ВРН "aqc". 2. нЯРЮБХРЭ НАПЮРМШИ ЯКЕЬ Б НДХМНВЕЯРБЕ. мЕЙНРНПШЕ ДПСЦХЕ ПЕЮКХГЮЖХХ awk ДЕКЮЧР ЩРН. б РЮЙНИ ПЕЮКХГЮЖХХ "a"qc" ЕЯРЭ РН ФЕ ЯЮЛНЕ ЙЮЙ МЮОЕВЮРЮРЭ "a""qc". б regexp НАПЮРМШИ ЯКЕЬ ОЕПЕД КЧАШЛ ЯХЛБНКНЛ, ЙНРНПШИ НРЯСРЯРБСЕР Б ОПЕДШДСЫЕИ РЮАКХЖЕ Х МЕ СЙЮГЮМ Б ПЮГДЕКЕ 4.4 [дНОНКМХРЕКЭМШЕ Regexp НОЕПЮРНПШ, РНКЭЙН ДКЪ gawk], ЯРП. 31, НГМЮВЮЕР, ВРН ЯКЕДСЧЫХИ ЯХЛБНК ДНКФЕМ АШРЭ БНЯОПХМЪР АСЙБЮКЭМН, ДЮФЕ ЕЯКХ ЩРН ЕЯРЭ НПЕПЮРНП regexp. мЮОПХЛЕП, /a"+b/ ЯННРБЕРЯРБСЕР РПЕЛ ЯХЛБНКЮЛ `a+b'. дКЪ ОНКМНИ ОЕПЕМНЯХЛНЯРХ МЕ СОНРПЕАКЪИРЕ НАПЮРМШИ ЯКЕЬ ОЕПЕД ЯХЛБНКЮЛХ, МЕ ОЕПЕВХЯКЕММШЛХ Б РЮАКХЖЕ, ОПХБЕДЕММНИ БШЬЕ. бНГМХЙЮЕР ЕЫЕ НДХМ ХМРЕПЕЯМШИ БНОПНЯ. оПЕДОНКНФХЛ, БШ ХЯОНКЭГСЕРЕ БНЯЭЛЕПХВМСЧ ХКХ ЬЕЯРМЮДЖЮРЕПХВМСЧ СОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ ДКЪ ОПЕДЯРЮБКЕМХЪ МЕЙНРНПНЦН ЛЕРЮЯХЛБНКЮ Б regexp (ЯЛ. ПЮГДЕК 4.3 [нОЕПЮРНПШ Б ПЕЦСКЪПМШУ БШПЮФЕМХЪУ], ЯРП. 26). дНКФЕМ КХ awk ПЮЯЯЛЮРПХБЮРЭ ЩРНР ЯХЛБНК АСЙБЮКЭМН ХКХ ЙЮЙ НОЕПЮРНП Б Б regexp? нЙЮГШБЮЕРЯЪ, ВРН ХЯРНПХВЕЯЙХ РЮЙХЕ ЯХЛБНКШ ПЮЯЯЛЮРПХБЮКХЯЭ АСЙБЮКЭМН (d.c.). нДМЮЙН, ЯРЮМДЮПР POSIX СЙЮГШБЮЕР, ВРН НМХ ДНКФМШ ПЮЯЯЛЮРПХБЮРЭЯЪ ЙЮЙ МЮЯРНЪЫХЕ ЛЕРЮЯХЛБНКШ, Х gawk ЙЮЙ ПЮГ ЩРН Х ДЕКЮЕР. бЛЕЯРЕ Я РЕЛ Б ПЕФХЛЕ ЩЛСКЪЖХХ (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161), gawk РПЮЙРСЕР ЯХЛБНКШ, ОПЕДЯРЮБКЕММШЕ БНЯЭЛЕПХВМШЛХ ХКХ ЬЕЯРМЮДЖЮРЕПХВМШЛХ СОПЮБКЪЧЫХЛХ ОНЯКЕДНБЮРЕКЭМНЯРЪЛХ АСЙБЮКЭМН, ЕЯКХ НМХ СОНРПЕАКЕМШ Б ЙНМЯРЮМРЮУ regexp. рЮЙ, /a"52b/ ЩЙБХБЮКЕМРМН /a"*b/. оНДБЕДЕЛ ХРНЦХ: 1. сОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ ХГ ОПХБЕДЕММНИ РЮАКХЖШ БЯЕЦДЮ НАПЮАЮРШБЮЧРЯЪ Б ОЕПБСЧ НВЕПЕДЭ Б ЯРПНЙНБШУ ЙНМЯРЮМРЮУ Х ЙНМЯРЮМРЮУ regexp. щРН ОПНХЯУНДХР МЮ ПЮММЕИ ЯРЮДХХ, ЙНЦДЮ awk ВХРЮЕР БЮЬС ОПНЦПЮЛЛС. 2. gawk НАПЮАЮРШБЮЕР ЙНМЯРЮМРШ regexp Х ДХМЮЛХВЕЯЙХЕ regexp (ЯЛ.ПЮГДЕК 4.7 [хЯОНКЭГНБЮМХЕ ДХМЮЛХВЕЯЙХУ regexp], ЯРП. 35) ДКЪ ЯОЕЖХЮКЭМШУ НОЕПЮРНПНБ, ОЕПЕВХЯКЕММШУ Б ПЮГДЕКЕ 4.4 [дНОНКМХРЕКЭМШЕ НОЕПЮРНПШ Regexp, РНКЭЙН Б gawk], ЯРП. 31. 3. нАПЮРМШИ ЯКЕЬ ОЕПЕД КЧАШЛ ДПСЦХЛ ЯХЛБНКНЛ НГМЮВЮЕР, ВРН ЩРНР ЯХЛБНК ДНКФЕМ РПЮЙРНБЮРЭЯЪ АСЙБЮКЭМН. 4.3 нОЕПЮРНПШ ПЕЦСКЪПМШУ БШПЮФЕМХИлНФМН ЙНЛАХМХПНБЮРЭ ПЕЦСКЪПМШЕ БШПЮФЕМХЪ Я ОНЛНЫЭЧ СЙЮГЮММШУ МХФЕ ЯХЛБНКНБ, МЮГШБЮЕЛШУ НОЕПЮРНПЮЛХ ПЕЦСКЪПМШУ БШПЮФЕМХИ ХКХ ЛЕРЮЯХЛБНКЮЛХ, ДКЪ СБЕКХВЕМХЪ БНГЛНФМНЯРЕИ Х СМХБЕПЯЮКЭМНЯРХ ПЕЦСКЪПМШУ БШПЮФЕМХИ. сОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ, НОХЯЮММШЕ БШЬЕ, Б ПЮГДЕКЕ 4.2 [сОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ], ЯРП. 24, ДЕИЯРБСЧР БМСРПХ regexp. нМХ ББНДЪРЯЪ Я ОНЛНЫЭЧ `"'. нМХ ПЮЯОНГМЮЧРЯЪ Х ЙНМБЕПРХПСЧРЯЪ Б ЯННРБЕРЯРБСЧЫХЕ ПЕЮКЭМШЕ ЯХЛБНКШ МЮ ЯЮЛНЛ ОЕПБНЛ ЬЮЦЕ НАПЮАНРЙХ regexp. оПХБЕДЕЛ РЮАКХЖС ЛЕРЮЯХЛБНКНБ. бЯЕ ЯХЛБНКШ, МЕ ЯНЯРЮБКЪЧЫХЕ СОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ Х ЙНРНПШЕ МЕ ОЕПЕВХЯКЕМШ Б РЮАКХЖШ, ОПЕДЯРЮБКЪЧР ЯЮЛХ ЯЕАЪ. " ХЯОНКЭГСЕРЯЪ ДКЪ СМХВРНФЕМХЪ ЯОЕЖХЮКЭМНЦН ГМЮВЕМХЪ ЯХЛБНКЮ ОПХ СЯРЮМНБЙЕ ЯННРБЕРЯРБХЪ. мЮОПХЛЕП, "$ НГМЮВЮЕР ЯХЛБНК `$'. ^ ЯННРБЕРЯРБСЕР МЮВЮКС ЖЕОНВЙХ. мЮОПХЛЕП, ^@chapter ЯННРБЕРЯРБСЕР `@chapter' Б МЮВЮКЕ ЖЕОНВЙХ Х ЛНФЕР ХЯОНКЭГНБЮРЭЯЪ ДКЪ ХДЕМРХТХЙЮЖХХ МЮВЮКЮ ЦКЮБШ Б ХЯУНДМШУ ТЮИКЮУ Texinfo. `^' МЮГШБЮЕРЯЪ ЪЙНПЕЛ, ОНЯЙНКЭЙС НМ ОНАСФДЮЕР НАПЮГЕЖ ЯПЮБМХБЮРЭЯЪ РНКЭЙН Я МЮВЮКНЛ ЖЕОНВЙХ. бЮФМН ГМЮРЭ, ВРН ЪЙНПЭ `^' МЕ ЯННРБЕРЯРБСЕР МЮВЮКС ЯРПНЙХ, БКНФЕММНИ Б ЖЕОНВЙС. б ЯКЕДСЧЫЕЛ ОПХЛЕПЕ СЯКНБХЕ МЕ БШОНКМЕМН: if ("line1"nLINE 2" ~ /^L/) ... $ ЮМЮКНЦХВМН `^', МН НРЛЕВЮЕР РНКЭЙН ЙНМЕЖ ЖЕОНВЙХ. мЮОПХЛЕП, p$ ЯННРБЕРЯРБСЕР ГЮОХЯХ, ЙНРНПЮЪ НЙЮМВХБЮЕРЯЪ МЮ `p'. `$' РНФЕ ЪЙНПЭ Х РНФЕ МЕ НГМЮВЮЕР ЙНМЕЖ ЯРПНЙХ, БКНФЕММНИ Б ЖЕОНВЙС. б ЯКЕДСЧЫЕЛ ОПХЛЕПЕ СЯКНБХЕ ХЛЕЕР ГМЮВЕМХЕ КНФЭ: if ("line1"nLINE 2" ~ /1$/) ... . РНВЙЮ ЯННРБЕРЯРБСЕР КЧАНЛС НДХМНВМНЛС ЯХЛБНКС, БЙКЧВЮЪ ЯХЛБНК newline. мЮОПХЛЕП, .P ЯННРБЕРЯРБСЕР КЧАНЛС НДХМНВМНЛС ЯХЛБНКС, ОПЕДЬЕЯРБСЧЫЕЛС Б ЖЕОНВЙЕ АСЙБЕ `P'. хЯОНКЭГСЧ ЙНМЙЮРЕМЮЖХЧ, ЛШ ЛНФЕЛ ЯРПНХРЭ ПЕЦСКЪПМШЕ БШПЮФЕМХЪ ОН ОПХЛЕПС `U.A', ОПЕДЯРЮБКЪЧЫЕЛС КЧАСЧ РПЕУЯХЛБНКЭМСЧ ОНЯКЕДНБЮРЕКЭМНЯРЭ, МЮВХМЮЧЫСЧЯЪ Я `U' Х ЙНМВЮЧЫСЧЯЪ МЮ `A'. б ЯРПНЦНЛ ПЕФХЛЕ POSIX (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161), `.' МЕ ЯННРБЕРЯРБСЕР ОСЯРНЛС ЯХЛБНКС, БЯЕ АХРШ ЙНРНПНЦН ПЮБМШ 0. б НЯРЮКЭМШУ ЯКСВЮЪУ ОСЯРНИ ЯХЛБНК ПЮЯЯЛЮРПХБЮЕРЯЪ ЙЮЙ НАШВМШИ ЯХЛБНК. дПСЦХЕ БЕПЯХХ awk МЕ ЛНЦСР НАМЮПСФХБЮРЭ ОСЯРНИ ЯХЛБНК. [...] МЮГШБЮЕРЯЪ ЯОХЯЙНЛ ЯХЛБНКНБ. нМ ЯННРБЕРЯРБСЕР КЧАНЛС ХГ ЯХЛБНКНБ, ГЮЙКЧВЕММШУ Б ЙБЮДПЮРМШЕ ЯЙНАЙХ. мЮОПХЛЕП, [MVX] ЯННРБЕРЯРБСЕР КЧАНИ ХГ АСЙБ `M', `V' ХКХ `X' Б ЖЕОНВЙЕ. дХЮОЮГНМШ ЯХЛБНКНБ СЙЮГШБЮЧРЯЪ Я ОНЛНЫЭЧ ДЕТХЯЮ ЛЕФДС МЮВЮКЭМШЛ Х ЙНМЕВМШЛ ЯХЛБНКЮЛХ Х ГЮЙКЧВЕМХЕЛ БЯЕЦН БШПЮФЕМХЪ Б ЙБЮДПЮРМШЕ ЯЙНАЙХ. мЮОПХЛЕП, [0-9] НГМЮВЮЕР КЧАСЧ ЖХТПС. дНОСЯРХЛШ Х ЙПЮРМШЕ ДХЮОЮГНМШ. мЮОПХЛЕП, ЯОХЯНЙ [A-Za-z0-9] ЕЯРЭ НАШВМШИ ЯОНЯНА СЙЮГЮМХЪ БЯЕУ КЮРХМЯЙХУ АСЙБ Х ЖХТП. вРНАШ БЙКЧВХРЭ НДХМ ХГ ЯХЛБНКНБ `"', `]', `-' ХКХ `^' Б ЯОХЯНЙ ЯХЛБНКНБ, ОНЯРЮБЭРЕ ОЕПЕД МХЛ `"'. мЮОПХЛЕП: [d"]] НГМЮВЮЕР `d' ХКХ `]'. рЮЙНЕ ХЯОНКЭГНБЮМХЕ `"' Б ЯОХЯЙЕ ЯХЛБНКНБ ЯНБЛЕЯРХЛН Я ДПСЦХЛХ ПЕЮКХГЮЖХЪЛХ awk Х ДНОСЯЙЮЕРЯЪ Б POSIX. пЕЦСКЪПМШЕ БШПЮФЕМХЪ Б awk НАПЮГСЧР ЯСОЕПЛМНФЕЯРБН ЯОЕЖХТХЙЮЖХИ POSIX ДКЪ пЮЯЬХПЕММШУ пЕЦСКЪПМШУ бШПЮФЕМХИ (EREs). POSIX EREs НЯМНБЮМШ МЮ ПЕЦСКЪПМШУ БШПЮФЕМХЪУ, ОПХМЪРШУ Б РПЮДХЖХНММШУ СРХКХРЮУ l egrep. йКЮЯЯШ ЯХЛБНКНБ ОПЕДЯРЮБКЪЧР МНБСЧ ВЕПРС, ББЕДЕММСЧ Б ЯРЮМДЮПР POSIX. яХЛБНКЭМШИ ЙКЮЯЯ ЕЯРЭ ЯОЕЖХЮКЭМНЕ НАНГМЮВЕМХЕ ДКЪ НОХЯЮМХЪ ЯОХЯЙНБ ЯХЛБНКНБ, ХЛЕЧЫХУ ЯОЕЖХЮКЭМШЕ ЮРПХАСРШ, МН ЦДЕ ЯЮЛХ ТЮЙРХВЕЯЙХЕ ЯХЛБНКШ ЛНЦСР ЛЕМЪРЭЯЪ НР ЯРПЮМШ Й ЯРПЮМЕ Х/ХКХ НР НДМНЦН ЯХЛБНКЭМНЦН ЛМНФЕЯРБЮ Й ДПСЦНЛС. мЮОПХЛЕП, ОНМЪРХЕ АСЙБЕММНЦН ЯХЛБНКЮ Б яью НРКХВЮЕРЯЪ НР РНЦН ФЕ БН тПЮМЖХХ. яХЛБНКЭМШИ ЙКЮЯЯ ХЛЕЕР ЯЛШЯК РНКЭЙН Б БМСРПХ ЯЙНАНЙ ЯХЛБНКЭМНЦН ЯОХЯЙЮ. яХЛБНКЭМШИ ЙКЮЯЯ ЯНЯРНХР ХГ `[:', ЙКЧВЕБНЦН ЯКНБЮ ЙКЮЯЯЮ, Х `:]'. оПХБЕДЕЛ ЯХЛБНКЭМШЕ ЙКЮЯЯШ, НОПЕДЕКЕММШЕ Б ЯРЮМДЮПРЕ POSIX. [:alnum:] аСЙБЕММН-ЖХТПНБШЕ ЯХЛБНКШ. [:alpha:] аСЙБЕММШЕ ЯХЛБНКШ. [:blank:] оПНАЕКШ Х ГМЮЙХ РЮАСКЪЖХХ. [:cntrl:] сОПЮБКЪЧЫХЕ ЯХЛБНКШ. [:digit:] жХТПШ. [:graph:] яХЛБНКШ, ЙНРНПШЕ Х ОЕВЮРМШ Х НДМНБПЕЛЕММН БХДХЛШ. (оПНАЕК ОЕВЮРМШИ, МН МЕБХДХЛШИ, Ю `a' ОЕВЮРЕМ Х БХДХЛ.) [:lower:] аСЙБШ МХФМЕЦН ПЕЦХЯРПЮ. [:print:] оЕВЮРМШЕ ЯХЛБНКШ (ЯХЛБНКШ, МЕ ЪБКЪЧЫХЕЯЪ СОПЮБКЪЧЫХЛХ.) [:punct:] гМЮЙХ ОСМЙРСЮЖХХ (МЕ АСЙБШ, ЖХТПШ, СОПЮБКЪЧЫХЕ ХКХ ОПНАЕКШ.) [:space:] гМЮЙХ ОПНАЕКНБ (ОПНАЕК, tab, formfeed). [:upper:] аСЙБШ БЕПУМЕЦН ПЕЦХЯРПЮ. [:xdigit:] ьЕЯРМЮДЖЮРЕПХВМШЕ ЖХТПШ. мЮОПХЛЕП, ДН ЯРЮМДЮПРЮ POSIX, ДКЪ БШДЕКЕМХЪ АСЙБ Х ЖХТП МСФМН АШКН ОХЯЮРЭ /[A-Za-z0-9]/. еЯКХ БЮЬЕ ЛМНФЕЯРБН ЯНДЕПФХР Х ДПСЦХЕ АСЙБШ, НМХ МЕ АСДСР НАМЮПСФЕМШ. я ОНЛНЫЭЧ ЙКЮЯЯНБ POSIX ЛНФМН ОХЯЮРЭ /[[:alnum:]]/, ВРН АСДЕР НРБЕВЮРЭ БЯЕЛ АСЙБЮЛ Х ЖХТПЮЛ БЮЬЕЦН ЯХЛБНКЭМНЦН ЛМНФЕЯРБЮ. дБЕ ДНОНКМХРЕКЭМШЕ ЯОЕЖХЮКЭМШЕ ОНЯКЕДНБЮРЕКЭМНЯРХ ЛНЦСР ТХЦСПХПНБЮРЭ Б ЯХЛБНКЭМШУ ЯОХЯЙЮУ. нМХ НРМНЯЪРЯЪ Й МЕ-ASCII ЯХЛБНКЭМШЛ ЛМНФЕЯРБЮЛ, ЙНРНПШЕ ЛНЦСР ХЛЕРЭ НРДЕКЭМШЕ ЯХЛБНКШ (МЮГШБЮЕЛШЕ СОНПЪДНВХБЮЧЫХЛХ ЩКЕЛЕМРЮЛХ), ОПЕДЯРЮБКЪЕЛШЕ АНКЕЕ ВЕЛ НДМХЛ ЯХЛБНКНЛ, ХКХ ЦПСООШ ЯХЛБНКНБ, ЙНРНПШЕ ПЮБМНГМЮВМН ХЯОНКЭГСЧРЯЪ Б ЖЕКЪУ СОНПЪДНВХБЮМХЪ ХКХ ЯНПРХПНБЙХ. (мЮОПХЛЕП, БН тПЮМЖХХ ОПНЯРНЕ "e" Х ХЛЕЧЫЕЕ ЮЙЯЮМР-ЦПЮТ "`e" ЩЙБХБЮКЕМРМШ.) яНПРХПСЧЫХЕ ЯХЛБНКШ (Collating Symbols) яНПРХПСЧЫХИ ЯХЛБНК ЕЯРЭ ЛМНЦНЯХЛБНКЭМШИ СОНПЪДНВХБЮЧЫХИ ЩКЕЛЕМР, ГЮЙКЧВЕММШИ Б `[.' Х `.]'. мЮОПХЛЕП, ЕЯКХ `ch' ЕЯРЭ СОНПЪДНВХБЮЧЫХИ ЩКЕЛЕМР, РН [[.ch.]] ЕЯРЭ regexp, ЙНРНПНЕ ЯННРБЕРЯРБСЕР ЩРНЛС СОНПЪДНВХБЮЧЫЕЛС ЩКЕЛЕМРС, Б РН БПЕЛЪ ЙЮЙ [ch] ЕЯРЭ regexp, ЙНРНПНЕ ЯННРБЕРЯРБСЕР КХАН `c' КХАН `h'. йКЮЯЯШ ЩЙБХБЮКЕМРМНЯРХйКЮЯЯ ЩЙБХБЮКЕМРМНЯРХ ЕЯРЭ ПЕЦХНМЮКЭМНЕ ЯОЕЖХЮКЭМНЕ ХЛЪ ДКЪ ЯОХЯЙЮ ЯХЛБНКНБ, ЙНРНПШЕ ЩЙБХБЮКЕМРМШ. щРН ХЛЪ ГЮЙКЧВЮЕРЯЪ Б `[=' Х `=]'. мЮОПХЛЕП, ХЛЪ `e' ЛНФЕР ХЯОНКЭГНБЮРЭЯЪ ДКЪ ОПЕДЯРЮБКЕМХЪ БЯЕУ "e," "`e," Х "'e." б РЮЙНЛ ЯКСВЮЕ [[=e]] ЕЯРЭ regexp, ЯННРБЕРЯРБСЧЫХИ КЧАНЛС ХГ `e', `'e', ХКХ ``e'. щРХ ВЕПРШ НВЕМЭ ЖЕММШ Б МЕ ЮМЦКНЪГШВМШУ ПЕЦХНМЮУ. бМХЛЮМХЕ: АХАКХНРЕВМШЕ ТСМЙЖХХ, ЙНРНПШЕ gawk ХЯОНКЭГСЕР ДКЪ ПЕЦСКЪПМШУ БШПЮФЕМХИ, ЯННРБЕРЯРБСЧР РНКЭЙН ОПХГМЮММШЛ Б POSIX ЙКЮЯЯЮЛ ЯХЛБНКНБ; НМХ МЕ ПЮЯОНГМЮЧР СОНПЪДНВХБЮЧЫХУ ЯХЛБНКНБ ХКХ ЙКЮЯЯНБ ЩЙБХБЮКЕМРМНЯРХ. [^ ...] ЕЯРЭ ДНОНКМЕМХЕ Й ЯОХЯЙС ЯХЛБНКНБ (ОЕПБШИ ЯХЛБНК ОНЯКЕ `[' ДНКФЕМ АШРЭ`^'). нМН ЯННРБЕРЯРБСЕР КЧАШЛ ЯХЛБНКЮЛ ЙПНЛЕ РЕУ, ЙНРНПШЕ МЮУНДЪРЯЪ Б ЙБЮДПЮРМШУ ЯЙНАЙЮУ. мЮОПХЛЕП, [^0-9] ЯННРБЕРЯРБСЕР КЧАНЛС ЯХЛБНКС, ЙПНЛЕ ЖХТП. -- ОПЕДЯРЮБКЪЕР НОЕПЮРНП ЮКЭРЕПМЮРХБШ Х ХЯОНКЭГСЕРЯЪ ДКЪ СЙЮГЮМХЪ ЮКЭРЕПМЮРХБ. мЮОПХЛЕП, ^P--[0-9] ЯННРБЕРЯРБСЕР КЧАНИ ЖЕОНВЙЕ, ЙНРНПЮЪ ЯННРБЕРЯРБСЕР КХАН `^P' КХАН `[0-9]'. рН ЕЯРЭ ЩРН ЯННРБЕРЯРБСЕР БЯЪЙНИ ЖЕОНВЙЕ, ЙНРНПЮЪ МЮВХМЮЕРЯЪ Я `P' ХКХ ЯНДЕПФХР ЖХТПС. юКЭРЕПМЮРХБЮ ЯБЪГШБЮЕР МЮХАНКЭЬХЕ БНГЛНФМШЕ regexp Я НАЕХУ ЯРНПНМ. дПСЦХЛХ ЯКНБЮЛХ, `--' ХЛЕЕР МЮХМХГЬХИ ОПХНПХРЕР ЯПЕДХ БЯЕУ НОЕПЮРНПНБ МЮД ПЕЦСКЪПМШЛХ БШПЮФЕМХЪЛХ. яЙНАЙХ (...) ХЯОНКЭГСЧРЯЪ ДКЪ ЦПСООХПНБНЙ Б ПЕЦСКЪПМШУ БШПЮФЕМХЪУ, ЙЮЙ Х Б ЮПХТЛЕРХВЕЯЙХУ. нМХ ЛНЦСР ХЯОНКЭГНБЮРЭЯЪ ДКЪ ЙНМЙЮРЕМЮЖХХ ПЕЦСКЪПМШУ БШПЮФЕМХИ, ЯНДЕПФЮЫХУ НОЕПЮРНП ЮКЭРЕПМЮРХБШ `--'. мЮОПХЛЕП, `@(samp--code)"-[^""]+"""' ЯННРБЕРЯРБСЕР ЙЮЙ `@code-foo""' РЮЙ Х `@samp-bar""'. (нМХ ЪБКЪЧРЯЪ ТНПЛЮРХПСЧЫХЛХ СОПЮБКЪЧЫХЛХ ОНЯКЕДНБЮРЕКЭМНЯРЪЛХ ДКЪ Texinfo.) * гБЕГДНВЙЮ НГМЮВЮЕР, ВРН ОПЕДЬЕЯРБСЧЫЕЕ ПЕЦСКЪПМНЕ БШПЮФЕМХЕ ДНКФМН АШРЭ ОНБРНПЕМН ЯРНКЭЙН ПЮГ, ЯЙНКЭЙН МЕНАУНДХЛН ДКЪ ОНКСВЕМХЪ ЯННРБЕРЯРБХЪ. мЮОПХЛЕП, ph* НГМЮВЮЕР ОПХЛЕМЕМХЕ ЯХЛБНКЮ `*' Й ОПЕДЬЕЯРБСЧЫЕЛС `h' Х ЯННРБЕРЯРБСЕР `p' Я ЯКЕДСЧЫХЛХ ГЮ МХЛ КЧАШЛ ЙНКХВЕЯРБНЛ `h' ( Б РНЛ ВХЯКЕ Х МСКЕБШЛ, РН ЕЯРЭ НДМНЛС `p'). `*' ОНБРНПЪЕР МЮХЛЕМЭЬЕЕ БНГЛНФМНЕ ОПЕДЬЕЯРБСЧЫЕЕ БШПЮФЕМХЕ (ХЯОНКЭГСИРЕ ЯЙНАЙХ, ЕЯКХ МСФМН ОНБРНПХРЭ АНКЭЬЕЕ БШПЮФЕМХЕ) КЧАНЕ ЙНКХВЕЯРБН ПЮГ. мЮОПХЛЕП, awk '/"(c[ad][ad]*r x")/ - print ""' sample ОЕВЮРЮЕР ЙЮФДСЧ ГЮОХЯЭ ХГ `sample', ЯНДЕПФЮЫСЧ ЖЕОНВЙС БХДЮ `(car x)', `(cdr x)', `(cadr x)', Х Р. Д. гЮЛЕРЭРЕ ХЯЙКЧВЕМХЕ ЯЙНАНЙ ОНЯПЕДЯРБНЛ ОПЕДБЮПЕМХЪ ХУ НАПЮРМШЛХ ЯКЕЬЮЛХ. + щРНР ЯХЛБНК ДЕИЯРБСЕР ОНДНАМН `*', МН ОПЕДЬЕЯРБСЧЫЕЕ БШПЮФЕМХЕ ДНКФМН АШРЭ ОНБРНПЕМН ОН ЙПЮИМЕИ ЛЕПЕ НДХМ ПЮГ. щРН ГМЮВХР, ВРН wh+y ЯННРБЕРЯРБСЕР `why' Х `whhy', МН МЕ `wy', Б РН БПЕЛЪ ЙЮЙ `wh*y' ЯННРБЕРЯРБСЕР БЯЕЛ РПЕЛ ОПХБЕДЕММШЛ ЖЕОНВЙЮЛ. бНР АНКЕЕ ОПНЯРНИ ЯОНЯНА ГЮОХЯХ ОНЯКЕДМЕЦН ОПХЛЕПЮ МЮ `*' : awk '/"(c[ad]+r x")/ - print ""' sample ? щРНР ЯХЛБНК РЮЙФЕ ДЕИЯРБСЕР ОНДНАМН `*', МН ОПЕДЬЕЯРБСЧЫЕЕ БШПЮФЕМХЕ ОНБРНПЪЕРЯЪ ХКХ ПЮГ ХКХ МХ ПЮГС. мЮОПХЛЕП, fe?d ЯННРБЕРЯРБСЕР `fed' Х `fd', Х МХВЕЛС ДПСЦНЛС. -n"" -n,"" -n,m"" нДМН ХКХ ДБЮ ВХЯКЮ БМСРПХ ТХЦСПМШУ ЯЙНАНЙ НГМЮВЮЧР ХМРЕПБЮКЭМНЕ БШПЮФЕМХЕ. еЯКХ Б ТХЦСПМШУ ЯЙНАЙЮУ ЯРНХР НДМН ВХЯКН, ОПЕДЬЕЯРБСЧЫЕЕ regexp ОНБРНПЪЕРЯЪ n ПЮГ. еЯКХ РЮЛ ДБЮ ВХЯКЮ, ПЮГДЕКЕММШЕ ГЮОЪРНИ, РН ОПЕДЬЕЯРБСЧЫЕЕ regexp ДНКФМН ОНБРНПЪРЭЯЪ НР n ДН m ПЮГ. еЯКХ ХЛЕЕРЯЪ НДМН ВХЯКН Я ОНЯКЕДСЧЫЕИ ГЮОЪРНИ, РН ОПЕДЬЕЯРБСЧЫЕЕ regexp ДНКФМН ОНБРНПЪРЭЯЪ МЕ ЛЕМЭЬЕ ВЕЛ n ПЮГ. wh-3""y ЯННРБЕРЯРБСЕР `whhhy', МН МЕ `why' ХКХ `whhhhy'. wh-3,5""y ЯННРБЕРЯРБСЕР РНКЭЙН `whhhy' ХКХ `whhhhy' ХКХ `whhhhhy'. wh-2,""y ЯННРБЕРЯРБСЕР `whhy' ХКХ `whhhy', Х Р.Д. хМРЕПБЮКЭМШЕ БШПЮФЕМХЪ РПЮДХЖХНММН МЕ ХЯОНКЭГНБЮКХЯЭ Б awk. йЮЙ ВЮЯРЭ ЯРЮМДЮПРЮ POSIX, НМХ ДНАЮБКЕМШ, ВРНАШ ЯДЕКЮРЭ awk Х egrep ЯНБЛЕЯРХЛШЛХ ДПСЦ Я ДПСЦНЛ. нДМЮЙН, ОНЯЙНКЭЙС ЯРЮПШЕ ОПНЦПЮЛЛШ ЛНЦСР ХЯОНКЭГНБЮРЭ `-' Х `""' Б ЙНМЯРЮМРЮУ regexp constants, ОН СЛНКВЮМХЧ gawk МЕ НАПЮАЮРШБЮЕР ХМРЕПБЮКЭМШЕ БШПЮФЕМХЪ Б regexp. еЯКХ СЙЮГЮМШ КХАН `--posix' КХАН `--re-interval' (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161), РН ХМРЕПБЮКЭМШЕ БШПЮФЕМХЪ ДНОСЯЙЮЧРЯЪ Б regexp. б ПЕЦСКЪПМШУ БШПЮФЕМХЪУ НОЕПЮРНПШ `*', `+' Х `?', РЮЙФЕ ЙЮЙ Х ТХЦСПМШЕ ЯЙНАЙХ `-' and `""', ХЛЕЧР МЮХБШЯЬХИ ОПХНПХРЕР, ГЮРЕЛ ХДЕР ЙНМЙЮРЕМЮЖХЪ Х, МЮЙНМЕЖ, `--'. йЮЙ Х Б ЮПХТЛЕРХЙЕ, ЙПСЦКШЕ ЯЙНАЙХ ЛНЦСР ХГЛЕМХРЭ ОНПЪДНЙ ДЕИЯРБХИ. еЯКХ gawk ДЕИЯБСЕР Б ПЕФХЛЕ ЩЛСКЪЖХХ (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161), ЙКЮЯЯШ ЯХЛБНКНБ Х ХМРЕПБЮКЭМШЕ БШПЮФЕМХЪ МЕДНОСЯРХЛШ Б ПЕЦСКЪПМШУ БШПЮФЕМХЪУ. б ЯКЕДСЧЫЕЛ ПЮГДЕКЕ НАЯСФДЮЧРЯЪ ЯОЕЖХЮКЭМШЕ ДКЪ GNU НОЕПЮРНПШ ПЕЦСКЪПМШУ БШПЮФЕМХИ Х ПЮЯЯЛЮРПХБЮЧРЯЪ ДЕРЮКХ РНЦН, ЙЮЙ БКХЪЧР ОЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ МЮ ЯОНЯНА ХМРЕПОПЕРЮЖХХ Б gawk ЯХЛБНКНБ Б ПЕЦСКЪПМШУ БШПЮФЕМХЪУ. 4.4 дНОНКМХРЕКЭМШЕ Regexp-нОЕПЮРНПШ, РНКЭЙН ДКЪ gawkоПНЦПЮЛЛМНЕ НАЕЯОЕВЕМХЕ GNU ОПХ НАПЮАНРЙЕ ПЕЦСКЪПМШУ БШПЮФЕМХИ ДНОСЯЙЮЕР МЕЙНРНПНЕ ЙНКХВЕЯРБН ДНОНКМХРЕКЭМШУ НОЕПЮРНПНБ. щРХ НОЕПЮРНПШ НОХЯЮМШ Б МЮЯРНЪЫЕЛ ПЮГДЕКЕ. нМХ ЯОЕЖХТХВМШ ДКЪ gawk Х МЕ ЛНЦСР ХЯОНКЭГНБЮРЭЯЪ Б ДПСЦХУ ПЕЮКХГЮЖХЪУ awk. аНКЭЬХМЯРБН ДНОНКМХРЕКЭМШУ НОЕПЮРНПНБ ОПЕДМЮГМЮВЕМШ ДКЪ СЯРЮМНБЙХ ЯННРБЕРЯРБХИ ЛЕФДС ЯКНБЮЛХ. б МЮЬЕЛ ЯКСВЮЕ ЯКНБН ЕЯРЭ ОНЯКЕДНБЮРЕКЭМНЯРЭ ХГ НДМНИ ХКХ АНКЕЕ АСЙБ, ЖХТП ХКХ ЯХЛБНКНБ ОНДВЕПЙХБЮМХЪ (`.'). "w НОЕПЮРНП ЯННРБЕРЯРБСЕР КЧАНЛС ЯХЛБНКС ХГ ЯНЯРЮБЮ ЯКНБЮ, Р.Е. АСЙБЕ, ЖХТПЕ ХКХ ОНДВЕПЙХБЮМХЧ. еЦН ЛНФМН ЛШЯКХРЭ ЙЮЙ ЯНЙПЮЫЕМХЕ ДКЪ [[:alnum:].]. "W НГМЮВЮЕР КЧАНИ ЯХЛБНК ЙПНЛЕ НАПЮГСЧЫХУ ЯКНБН. нМ ЛНФЕР ЛШЯКХРЭЯЪ ЙЮЙ ЯНЙПЮЫЕМХЕ ДКЪ [^[:alnum:].]. "! НОЕПЮРНП НГМЮВЮЕР ОСЯРСЧ ЖЕОНВЙС Б МЮВЮКЕ ЯКНБЮ. мЮОПХЛЕП, /"!away/ ЯННРБЕРЯРБСЕР `away', МН МЕ `stowaway'. "? НОЕПЮРНП ЯННРБЕРЯРБСЕР ОСЯРНИ ЖЕОНВЙЕ Б ЙНМЖЕ ЯКНБЮ. мЮОПХЛЕП, /stow"?/ ЯННРБЕРЯРБСЕР `stow', МН МЕ `stowaway'.
"B НОЕПЮРНП НРБЕВЮЕР ОСЯРНИ ЖЕОНВЙЕ Б ОПЕДЕКЮУ ЯКНБЮ. дПСЦХЛХ ЯКНБЮЛХ, `"B' ЯННРБЕРЯРБСЕР ОСЯРНИ ЖЕОНВЙЕ, ЙНРНПЮЪ МЮУНДХРЯЪ ЛЕФДС ДБСЛЪ БУНДЪЫХЛХ Б ЯНЯРЮБ ЯКНБЮ ЯХЛБНКЮЛХ. мЮОПХЛЕП, /"Brat"B/ ЯННРБЕРЯРБСЕР `crate', МН МЕ ЯННРБЕРЯРБСЕР `dirty rat'. `"B' ЕЯРЭ ЯСЫЕЯРБЕММЮЪ ОПНРХБНОНКНФМНЯРЭ `"y'. хЛЕЧРЯЪ ЕЫЕ ДБЮ НОЕПЮРНПЮ, ЙНРНПШЕ ДЕИЯРБСЧР МЮ АСТЕПЮУ. б Emacs АСТЕП, ЕЯРЕЯРБЕММН, ЕЯРЭ АСТЕП Emacs. дКЪ ДПСЦХУ ОПНЦПЮЛЛ ОНДОПНЦПЮЛЛШ ХГ АХАКХНРЕЙХ ОНДОПНЦПЮЛЛ ДКЪ regexp, ЙНРНПШЕ ХЯОНКЭГСЕР gawk, ПЮЯЯЛЮРПХБЮЧР БЯЧ ЖЕОНВЙС ДКЪ ЯННРБЕРЯРБХЪ ЙЮЙ АСТЕП. дКЪ awk, ОНЯЙНКЭЙС `^' Х `$' БЯЕЦДЮ ДЕИЯРБСЧР Б РЕПЛХМЮУ МЮВЮКЮ Х ЙНМЖЮ ЖЕОНВЕЙ, ЩРХ НОЕПЮРНПШ МЕ ОПХАЮБКЪЧР МХЙЮЙХУ МНБШУ БНГЛНФМНЯРЕИ. нМХ ДНАЮБКЕМШ РНКЭЙН ДКЪ ЯНБЛЕЯРХЛНЯРХ Я ДПСЦХЛХ ОПНЦПЮЛЛЮЛХ НАЕЯОЕВЕМХЪ GNU. "` щРНР НОЕПЮРНП ЯННРБЕРЯРБСЕР ОСЯРНИ ЯРПНЙЕ Б МЮВЮКЕ АСТЕПЮ. "' щРНР НОЕПЮРНП ЯННРБЕРЯРБСЕР ОСЯРНИ ЯРПНЙЕ Б ЙНМЖЕ АСТЕПЮ. б ДПСЦХУ ОПНЦПЮЛЛМШУ НАЕЯОЕВЕМХЪУ GNU НОЕПЮРНП ЦПЮМХЖ ЯКНБ ЕЯРЭ `"b'. нДМЮЙН, ЩРН ОПНРХБНПЕВХР Я НОПЕДЕКЕМХЕЛ Б ЪГШЙЕ awk `"b' ЙЮЙ БНГБПЮРЮ МЮ НДМС ОНГХЖХЧ (backspace), ОНЩРНЛС Б gawk ХЯОНКЭГСЕРЯЪ ДПСЦЮЪ АСЙБЮ. юКЭРЕПМЮРХБМШЛ ЛЕРНДНЛ ЛНЦКН АШ АШРЭ РПЕАНБЮМХЕ ДБСУ НАПЮРМШУ ЯКЕЬЕИ Б НОЕПЮРНПЮУ GNU, МН ЩРН АШКН ЯНВРЕМН ЯКХЬЙНЛ ГЮОСРЮММШЛ, Х РЕЙСЫХИ ЯОНЯНА СОНРПЕАКЕМХЪ `"y' БЛЕЯРН `"b' Б GNU ЙЮФЕРЯЪ ЛЕМЭЬХЛ ХГ ДБСУ ГНК. пЮГКХВМШЕ ОЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161) СОПЮБКЪЧР ХМРЕПОПЕРЮЖХЕИ gawk ЯХЛБНКНБ Б regexp. оН СЛНКВЮМХЧ gawk НАЕЯОЕВХБЮЕР БЯЕ ЯПЕДЯРБЮ НОЕПЮРНПНБ Б POSIX regexp Х GNU regexp, НОХЯЮММШЕ БШЬЕ. нДМЮЙН, ХМРЕПБЮКЭМШЕ БШПЮФЕМХЪ МЕ НАПЮАЮРШБЮЧРЯЪ. дЮКЕЕ ОЕПЕВХЯКЪЧРЯЪ БНГЛНФМШЕ ОЮПЮЛЕРПШ Х ХУ ДЕИЯРБХЕ. --posix нАПЮАЮРШБЮЧРЯЪ РНКЭЙН POSIX regexp, НОЕПЮРНПШ GNU МЕ ПЮЯЯЛЮРПХБЮЧРЯЪ (МЮОПХЛЕП, `"w' ЯННРБЕРЯРБСЕР КХРЕПЮКС `w'). хМРЕПБЮКЭМШЕ БШПЮФЕМХЪ ДНОСЯЙЮЧРЯЪ. --traditionalяННРБЕРЯРБХЕ РПЮДХЖХНММШЛ Unix awk regexp. нОЕПЮРНПШ GNU МЕ ДНКФМШ АШРЭ ЯОЕЖХЮКЭМШЛХ, ХМРЕПБЮКЭМШЕ БШПЮФЕМХЪ МЕ ХЯОНКЭГСЧРЯЪ, МЕ ДНОСЯЙЮЧРЯЪ ЯХЛБНКЭМШЕ ЙКЮЯЯШ POSIX ([[:alnum:]] Х Р.Д.). яХЛБНКШ Б БНЯЭЛЕПХВМШУ Х ЬЕЯРМЮДЖЮРЕПХВМШУ СОПЮБКЪЧЫХУ ОНЯКЕДНБЮРЕКЭМНЯРЪУ ПЮЯЯЛЮРПХБЮЧРЯЪ АСЙБЮКЭМН, ДЮФЕ ЕЯКХ ОНЯКЕДНБЮРЕКЭМНЯРХ ОПЕДЯРЮБКЪЧР ЛЕРЮЯХЛБНКШ regexp. --re-intervalдНОСЯЙЮЧРЯЪ ХМРЕПБЮКЭМШЕ БШПЮФЕМХЪ Б regexp, ДЮФЕ ЕЯКХ `--traditional' АШК ПЮМЕЕ СЙЮГЮМ. 4.5 гЮБХЯХЛНЯРЭ НР ПЕЦХЯРПЮ ОПХ НОПЕДЕКЕМХХ ЯННРБЕРЯРБХЪмНПЛЮКЭМН ПЕЦХЯРП СВХРШБЮЕРЯЪ Б ПЕЦСКЪПМШУ БШПЮФЕМХЪУ ОПХ ЯННРБЕРЯРБХХ ОПНЯРШУ ЯХЛБНКНБ (Р.Е. МЕ ЛЕРЮЯХЛБНКНБ) Х БМСРПХ ЯХЛБНКЭМШУ ЛМНФЕЯРБ. рЮЙ, `w' Б ПЕЦСКЪПМНЛ БШПЮФЕМХХ ЯННРБЕРЯРБСЕР РНКЭЙН `w' МХФМЕЦН ПЕЦХЯРПЮ Х МЕ ЯННРБЕРЯРБСЕР БЕПУМЕПЕЦХЯРПНБНЛС `W'. оПНЯРЕИЬХИ ОСРЭ ДКЪ МЕГЮБХЯХЛНЦН НР ПЕЦХЯРПЮ ЯННРБЕРЯРБХЪ ЕЯРЭ ХЯОНКЭГНБЮМХЕ ЯХЛБНКЭМНЦН ЯОХЯЙЮ: `[Ww]'. нДМЮЙН, ЩРН ЛНФЕР НЙЮГЮРЭЯЪ ЦПНЛНГДЙХЛ, ЕЯКХ ЩРН МСФМН ВЮЯРН; Х ЩРН ЛНФЕР ГЮРПСДМХРЭ ОПНВРЕМХЕ ПЕЦСКЪПМНЦН БШПЮФЕМХЪ. хЛЕЧРЯЪ ДБЕ ЮКЭРЕПМЮРХБШ ДКЪ СОПНЫЕМХЪ. нДХМ ОСРЭ СЯРПНХРЭ МЕВСБЯРБХРЕКЭМНЕ Й ПЕЦХЯРПС ЯННРБЕРЯРБХЕ Б МЕЙНРНПНИ РНВЙЕ ОПНЦПЮЛЛШ ЕЯРЭ ЙНМБЕПРХПНБЮМХЕ ДЮММШУ Й НДМНЛС ПЕЦХЯРПС Я ОНЛНЫЭЧ БЯРПНЕММШУ ТСМЙЖХИ tolower ХКХ toupper (ХУ ЛШ ЕЫЕ МЕ ПЮЯЯЛЮРПХБЮКХ; ЯЛ. ПЮГДЕК 12.3 [бЯРПНЕММШЕ ТСМЙЖХХ ДКЪ ДЕИЯРБХИ Я ЖЕОНВЙЮЛХ], ЯРП. 137). МЮОПХЛЕП, tolower($1) ~ /foo/ - ... "" ОЕПЕБНДХР ОЕПБНЕ ОНКЕ Б МХФМХИ ПЕЦХЯРП ОЕПЕД ОПНБЕПЙНИ ЯННРБЕРЯРБХЪ Я МХЛ. щРН ПЮАНРЮЕР Б КЧАНИ ПЕЮКХГЮЖХХ awk, ЯННРБЕРЯРБСЧЫЕИ POSIX. дПСЦНИ ЛЕРНД, ЯОЕЖХЮКЭМШИ ДКЪ gawk, ЯНЯРНХР Б СЯРЮМНБЙЕ ОЕПЕЛЕММНИ IGNORECASE МЮ МЕМСКЕБНЕ ГМЮВЕМХЕ (ЯЛ. цКЮБС 10 [бЯРПНЕММШЕ ОЕПЕЛЕММШЕ], ЯРП. 115). йНЦДЮ IGNORECASE МЕ ПЮБМЮ МСКЧ, БЯЕ НОЕПЮЖХХ МЮД regexp Х ЖЕОНВЙЮЛХ ХЦМНПХПСЧР ПЕЦХЯРП. хГЛЕМЪЪ ДХМЮЛХВЕЯЙХ ГМЮВЕМХЕ IGNORECASE, ЛНФМН СОПЮБКЪРЭ ВСБЯРБХРЕКЭМНЯРЭЧ Й ПЕЦХЯРПС БН БПЕЛЪ ХЯОНКМЕМХЪ ОПНЦПЮЛЛШ. оН СЛНКВЮМХЧ ПЕЦХЯРП СВХРШБЮЕРЯЪ, ОНРНЛС ВРН IGNORECASE (ОНДНАМН АНКЭЬХМЯРБС ОЕПЕЛЕММШУ) ХМХЖХЮКХГХПСЕРЯЪ МСКЕЛ. x = "aB" if (x ~ /ab/) ... # ЩРНР РЕЯР МЕ ЯПЮАНРЮЕР IGNORECASE = 1 if (x ~ /ab/) ... # РЕОЕПЭ ОПНИДЕР СЯОЕЬМН б НАЫЕЛ ЯКСВЮЕ МЕКЭГЪ ХЯОНКЭГНБЮРЭ IGNORECASE, ВРНАШ ЯДЕКЮРЭ МЕЙНРНПШЕ ОПЮБХКЮ ВСБЯРБХРЕКЭМШЛХ Й ПЕЦХЯРПС, Ю ДПСЦХЕ МЕВСБЯРБХРЕКЭМШЛХ, ОНРНЛС ВРН МЕР ЯОНЯНАЮ СЯРЮМНБХРЭ IGNORECASE РНКЭЙН ДКЪ НАПЮГЖЮ ЙНМЙПЕРМНЦН ОПЮБХКЮ. вРНАШ ЯДЕКЮРЭ ЩРН, МСФМН ХЯОНКЭГНБЮРЭ ЯОХЯНЙ ЯХЛБНКНБ ХКХ tolower. мН БШ ЛНФЕРЕ ДХМЮЛХВЕЯЙНИ СЯРЮМНБЙНИ ХКХ ЯАПНЯНЛ ОЕПЕЛЕММНИ IGNORECASE БЙКЧВЮРЭ Х БШЙКЧВЮРЭ ВСБЯРБХРЕКЭМНЯРЭ Й ПЕЦХЯРПС ДКЪ БЯЕУ ОПЮБХК БЛЕЯРЕ. IGNORECASE ЛНФЕР АШРЭ СЯРЮМНБКЕМЮ ХГ ЙНЛЮМДМНИ ЯРПНЙХ ХКХ ОПЮБХКНЛ BEGIN (ЯЛ. ПЮГДЕК 14.2 [нЯРЮКЭМШЕ ЮПЦСЛЕМРШ ЙНЛЮМДМНИ ЯРПНЙХ ], ЯРП. 165; РЮЙФЕ ЯЛ. ПЮГДЕК 8.1.5.1 [дЕИЯРБХЪ ОПХ ГЮОСЯЙЕ Х НВХЯРЙЕ], ЯРП. 100). сЯРЮМНБЙЮ IGNORECASE ХГ ЙНЛЮМДМНИ ЯРПНЙХ ЕЯРЭ ЯОНЯНА ЯДЕКЮРЭ ОПНЦПЮЛЛС ВСБЯРБХРЕКЭМНИ Й ПЕЦХЯРПС АЕГ ПЕДЮЙРХПНБЮМХЪ ЕЕ. дН БЕПЯХХ 3.0 gawk ГМЮВЕМХЕ IGNORECASE БКХЪКН РНКЭЙН МЮ НОЕПЮЖХХ regexp. нМН МЕ ДЕИЯРБНБЮКН МЮ ЯПЮБМЕМХЕ ЖЕОНВЕЙ ОН `==', `!=', Х Р.Д. мЮВХМЮЪ Я БЕПЯХХ 3.0, ЙЮЙ regexp НОЕПЮЖХХ, РЮЙ Х НОЕПЮЖХХ ЯПЮБМЕМХЪ ЖЕОНВЕЙ ОНДВХМЕМШ ГМЮВЕМХЪЛ IGNORECASE. мЮВХМЮЪ Я БЕПЯХХ gawk 3.0, ЩЙБХБЮКЕМРМНЯРЭ ЯХЛБНКНБ БЕПУМЕЦН Х МХФМЕЦН ПЕЦХЯРПНБ НРМНЯХРЯЪ Й ЛМНФЕЯРБС ЯХЛБНКНБ ISO-8859-1 (ISO Latin-1). щРН ЛМНФЕЯРБН ЕЯРЭ ЯСОЕПЛМНФЕЯРБН РПЮДХЖХНММШУ ЯХЛБНКНБ 128 ASCII, ЙНРНПНЕ РЮЙФЕ ЯНДЕПФХР МЕЙНРНПНЕ ЙНКХВЕЯРБН ЯХЛБНКНБ, ХЯОНКЭГСЕЛШУ Б ЕБПНОЕИЯЙХУ ЪГШЙЮУ. гМЮВЕМХЕ IGNORECASE АЕГПЮГКХВМН, ЕЯКХ gawk ДЕИЯРБСЕР Б ПЕФХЛЕ ЩЛСКЪЖХХ (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161). пЕЦХЯРП БЯЕЦДЮ СВХРШБЮЕРЯЪ Б ПЕФХЛЕ ЩЛСКЪЖХХ. 4.6 йЮЙ ЛМНЦН РЕЙЯРЮ СВХРШБЮЕРЯЪ ОПХ НОПЕДЕКЕМХХ ЯННРБЕРЯРБХЪ?пЮЯЯЛНРПХЛ ЯКЕДСЧЫХИ ОПХЛЕП: echo aaaabcd -- awk '- sub(/a+/, "!A?"); print ""' б МЕЛ ХЯОНКЭГСЕРЯЪ ТСМЙЖХЪ sub (ЙНРНПСЧ ЛШ ЕЫЕ МЕ НАЯСФДЮКХ, ЯЛ. ПЮГДЕК 12.3 [бЯРПНЕММШЕ ТСМЙЖХХ ДКЪ ДЕИЯРБХИ Я ЖЕОНВЙЮЛХ], ЯРП. 137) ДКЪ ХГЛЕМЕМХЪ БУНДМНИ ГЮОХЯХ. гДЕЯЭ regexp /a+/ НГМЮВЮЕР "НДХМ ХКХ АНКЭЬЕ ЯХЛБНКНБ `a' " Ю ГЮЛЕЫЮЧЫХИ РЕЙЯР ЕЯРЭ `!A?'. бБНД ЯНДЕПФХР ВЕРШПЕ ЯХЛБНКЮ `a'. йЮЙНБ АСДЕР ПЕГСКЭРЮР? дПСЦХЛХ ЯКНБЮЛХ, ЯЙНКЭЙН "НДХМ ХКХ АНКЭЬЕ" АСДЕР СВХРШБЮРЭ awk, ДБЮ, РПХ ХКХ БЯЕ ВЕРШПЕ `a' ? нРБЕР РЮЙНБ. пЕЦСКЪПМШЕ БШПЮФЕМХЪ Б awk (Х POSIX) БЯЕЦДЮ СВХРШБЮЧР ЯЮЛСЧ КЕБСЧ Х ЯЮЛСЧ ДКХММСЧ ЖЕОНВЙС БУНДМШУ ЯХЛБНКНБ ДКЪ ЯННРБЕРЯРБХЪ. оНЩРНЛС Б МЮЬЕЛ ОПХЛЕПЕ БЯЕ ВЕРШПЕ ЯХЛБНКЮ `a' ГЮЛЕМЪЧРЯЪ МЮ `!A?'. $ echo aaaabcd -- awk '- sub(/a+/, "!A?"); print ""' a !A?bcd дКЪ ОПНЯРШУ РЕЯРНБ ЯННРБЕРЯРБСЕР/МЕ ЯННРБЕРЯРБСЕР ЩРН МЕ РЮЙ БЮФМН. мН ОПХ НАПЮАНРЙЕ ОНКЕИ Х ПЮЯЫЕОКЕМХХ ГЮОХЯЕИ, ОПХ НОПЕДЕКЕМХХ ЯННРБЕРЯРБХЪ РЕЙЯРНБ Х ОНДЯРЮМНБНЙ Я ОНЛНЫЭЧ ТСМЙЖХИ match, sub, gsub Х gensub ЩРН НВЕМЭ БЮФМН. оНМХЛЮМХЕ ЩРНЦН ОПХМЖХОЮ РЮЙФЕ БЮФМН ДКЪ НОХПЮЧЫХУЯЪ МЮ regexp ГЮОХЯЕИ Х ПЮГДЕКЕМХЪ ОНКЕИ (ЯЛ. ПЮГДЕК 5.1 [йЮЙ БУНД ПЮГДЕКЪЕРЯЪ МЮ ГЮОХЯХ], ЯРП. 37, Ю РЮЙФЕ ПЮГДЕК 5.5 [сЙЮГЮМХЕ РНЦН, ЙЮЙ ПЮГДЕКЪЧРЯЪ ОНКЪ], ЯРП. 44). 4.7 хЯОНКЭГНБЮМХЕ ДХМЮЛХВЕЯЙХУ ПЕЦСКЪПМШУ БШПЮФЕМХИоПЮБЮЪ ЯРНПНМЮ Б НОЕПЮРНПЮУ `~' ХКХ`!~' МЕ НАЪГЮМЮ АШРЭ ЙНМЯРЮМРНИ regexp (Р.Е. ЖЕОНВЙНИ ЯХЛБНКНБ ЛЕФДС ЯКЕЬЮЛХ). щРН ЛНФЕР АШРЭ КЧАНЕ БШПЮФЕМХЕ. бШПЮФЕМХЕ БШВХЯКЪЕРЯЪ Х ОПЕБПЮЫЮЕРЯЪ, ЕЯКХ МСФМН, Б ЖЕОНВЙС; ЯНДЕПФХЛНЕ ЖЕОНВЕЙ ХЯОНКЭГСЕРЯЪ ЙЮЙ regexp. йЮФДНЕ regexp, ЙНРНПНЕ БШВХЯКЪЕРЯЪ РЮЙХЛ НАПЮГНЛ, МЮГШБЮЕРЯЪ ДХМЮЛХВЕЯЙХЛ regexp. мЮОПХЛЕП: BEGIN - identifier.regexp = "[A-Za-z.][A-Za-z.0-9]+" "" $0 ~ identifier.regexp - print "" ОПХЯБЮХБЮЕР ХДЕМРХТХЙЮРНПС identifier.regexp ГМЮВЕМХЕ regexp, ЙНРНПНЕ НОХЯШБЮЕР ХЛЕМЮ ОЕПЕЛЕММШУ awk Х ОПНБЕПЪЕР, ЯННРБЕРЯРБСЕР КХ БУНДМЮЪ ГЮОХЯЭ ЩРНЛС regexp. бМХЛЮМХЕ: ОПХ СОНРПЕАКЕМХХ НОЕПЮРНПНБ `~' Х `!~' МСФМН ПЮГКХВЮРЭ ЙНМЯРЮМРШ regexp, ГЮЙКЧВЕММШЕ Б ЯКЕЬХ, Х ЙНМЯРЮМРШ-ЖЕОНВЙХ Б ДБНИМШУ ЙЮБШВЙЮУ. еЯКХ БШ ХЯОНКЭГСЕРЕ ЙНМЯРЮМРШ-ЖЕОНВЙХ, БШ ДНКФМШ НРДЮБЮРЭ ЯЕАЕ НРВЕР Б РНЛ, ВРН ЖЕОНВЙХ ЯЙЮМХПСЧРЯЪ ДБЮФДШ; ОЕПБШИ ПЮГ, ЙНЦДЮ awk ВХРЮЕР ОПНЦПЮЛЛС, Х БРНПНИ ПЮГ, ЙНЦДЮ awk ХЫЕР ЯННРБЕРЯРБХЕ ЛЕФДС ЖЕОНВЙНИ Б КЕБНИ ВЮЯРХ НОЕПЮРНПЮ to match the string on the Я НАПЮГЖНЛ ЯОПЮБЮ. рЮЙ ОПНХЯУНДХР Я ЙЮФДШЛ БШПЮФЕМХЕЛ, ХЛЕЧЫЕЛ ГМЮВЕМХЕЛ ЖЕОНВЙС (РЮЙХЛ ЙЮЙ identifier.reggexp Б ОПХЛЕПЕ), МЕ ЪБКЪЧЫХЛЯЪ ОПНЯРН ЖЕОНВЙНИ-ЙНМЯРЮМРНИ. мН ЙЮЙСЧ ПЮГМХЖС ДЮЕР ДБНИМНЕ ЯЙЮМХПНБЮМХЕ ЖЕОНВЙХ? нРБЕР ЯБЪГЮМ Я СОПЮБКЪЧЫХЛХ ОНЯКЕДНБЮРЕКЭМНЯРЪЛХ Х НЯНАЕММН Я НАПЮРМШЛХ ЯКЕЬЮЛХ. вРНАШ ХЛЕРЭ НАПЮРМШИ ЯКЕЬ Б ПЕЦСКЪПМНЛ БШПЮФЕМХХ БМСРПХ МЕЙНРНПНИ ЖЕОНВЙХ, МСФМН МЮОЕВЮРЮРЭ ДБЮ НАПЮРМШУ ЯКЕЬЮ. мЮОПХЛЕП, /"*/ ЕЯРЭ ЙНМЯРЮМРЮ regexp ДКЪ КХРЕПЮКЮ `*'.мСФЕМ РНКЭЙН НДХМ НАПЮРМШИ ЯКЕЬ. вРНАШ ЯДЕКЮРЭ РН ФЕ ЯЮЛНЕ Я ЖЕОНВЙНИ, МСФМН МЮОЕВЮРЮРЭ """*". оЕПБШИ НАПЮРМШИ ЯКЕЬ СОПЮБКЪЕР БРНПШЛ, РЮЙ ВРН ЖЕОНВЙЮ ТЮЙРХВЕЯЙХ ЯНДЕПФХР ДБЮ ЯХЛБНКЮ `"' Х `*'. гМЮЪ, ВРН БШ ЛНФЕРЕ ХЯОНКЭГНБЮРЭ Х regexp Х ЯРПНЙНБСЧ ЙНМЯРЮМРШ ДКЪ НОХЯЮМХЪ ПЕЦСКЪПМНЦН БШПЮФЕМХЪ, ВЕЛ БШ ДНКФМШ БНЯОНКЭГНБЮРЭЯЪ? нРБЕР АСДЕР: "ОНЯРНЪММЮЪ regexp" Б ЯХКС РПЕУ ОПХВХМ. 1. йНМЯРЮМРС -ЖЕОНВЙС (ХКХ ЯРПНЙНБСЧ ЙНМЯРЮМРС) РПСДМЕЕ ОХЯЮРЭ Х РПСДМЕЕ ВХРЮРЭ. хЯОНКЭГНБЮМХЕ ЙНМЯРЮМРШ regexp ДЕКЮЕР БЮЬС ОПНЦПЮЛЛС АНКЕЕ МЮДЕФМНИ. мЕОНМХЛЮМХЕ ПЮГМХЖШ ЛЕФДС ДБСЛЪ БХДЮЛХ ЙНМЯРЮМР ЕЯРЭ ВЮЯРШИ ХЯРНВМХЙ НЬХАНЙ. 2. сОНРПЕАКЕМХЕ ЙНМЯРЮМР regexp ДЕКЮЕР ОПНЦПЮЛЛС ЩТТЕЙРХБМЕЕ: awk ЛНФЕР ГЮЛЕРХРЭ, ВРН БШ СОНРПЕАХКХ regexp Х ГЮОНЛМХРЭ ЕЦН Б ТНПЛЕ, АНКЕЕ СДНАМНИ ДКЪ ЯПЮБМЕМХЪ Я НАПЮГЖНЛ. хЯОНКЭГСЪ ЯРПНЙНБСЧ ЙНМЯРЮМРС, awk ДНКФЕМ ЯМЮВЮКЮ ОЕПЕБЕЯРХ ЖЕОНВЙС Б БМСРПЕММЧЧ ТНПЛС, Ю ГЮРЕЛ ОПНХГБЕЯРХ ЯПЮБМЕМХЕ Я НАПЮГЖНЛ. 3. сОНРПЕАКЕМХЕ ЙНМЯРЮМР regexp --- ОПЕДОНВРХРЕКЭМШИ ЯРХКЭ; НМ ОНЙЮГШБЮЕР ЪЯМН, ВРН БШ СЯРЮМЮБКХБЮРЭ ЯННРБЕРЯРБХЕ Я regexp. |
<<< | нЦКЮБКЕМХЕ | яРПЮМХЖШ: 4 5 | >>> |