пСЙНБНДЯРБН ОНКЭГНБЮРЕКЪ ДКЪ GNU Awk

Arnold D. Robbins
ОЕПЕБНД аЮКСЕБЮ ю. м.

5. вРЕМХЕ БУНДМШУ ТЮИКНБ

нЦКЮБКЕМХЕ
б МЮВЮКН ЯРПЮМХЖШ

б НАШВМНИ awk-ОПНЦПЮЛЛЕ БЕЯЭ БУНД ВХРЮЕРЯЪ КХАН ЯН ЯРЮМДЮПРМНЦН БУНДЮ (ОН СЛНКВЮМХЧ Я ЙКЮБХЮРСПШ, МН ВЮЯРН Х Я ЙНМБЕИЕПЮ ХГ ДПСЦНИ ЙНЛЮМДШ ) ХКХ Я ТЮИКНБ, ХЛЕМЮ ЙНРНПШУ БШ СЙЮГШБЮЕРЕ Б ЙНЛЮМДМНИ ЯРПНЙЕ awk.еЯКХ БШ СЙЮГШБЮЕРЕ БУНДМШЕ ТЮИКШ, awk ВХРЮЕР ХУ ОНДПЪД, ЯМЮВЮКЮ БЯЕ ДЮММШЕ Я НДМНЦН, ГЮРЕЛ ОЕПЕУНДХР Й ЯКЕДСЧЫЕЛС. хЛЪ РЕЙСЫЕЦН БУНДМНЦН ТЮИКЮ УПЮМХРЯЪ Б БЯРПНЕММНИ ОЕПЕЛЕММНИ FILENAME (ЯЛ. цКЮБС 10 [бЯРПНЕММШЕ ОЕПЕЛЕММШЕ], ЯРП. 115).

бБНД ВХРЮЕРЯЪ Б ЕДХМХЖЮУ, МЮГШБЮЕЛШУ ГЮОХЯЪЛХ, Х НАПЮАЮРШБЮЕРЯЪ ОН ОПЮБХКЮЛ БЮЬЕИ ОПНЦПЮЛЛШ ГЮОХЯЭ ГЮ ГЮОХЯЭЧ. оН СЛНКВЮМХЧ, ЙЮФДЮЪ ГЮОХЯЭ ЕЯРЭ НДМЮ ЯРПНЙЮ (line). йЮФДЮЪ ГЮОХЯЭ ЮБРНЛЮРХВЕЯЙХ ПЮГДЕКЪЕРЯЪ МЮ ВЮЯРХ, МЮГШБЮЕЛШЕ ОНКЪЛХ. щРН ДЕКЮЕР АНКЕЕ СДНАМШЛ ДКЪ ОПНЦПЮЛЛШ НАПЮАНРЙС ВЮЯРЕИ ГЮОХЯХ. б ПЕДЙХУ ЯКСВЮЪУ БЮЛ МСФМН ХЯОНКЭГНБЮРЭ ЙНЛЮМДС getline. нМЮ МСФМЮ РНЦДЮ, ЙНЦДЮ МСФЕМ ББНД Я ТЮИКНБ МЕ ОНДПЪД, Х НМЮ ОНГБНКЪЕР МЕ СЙЮГШБЮРЭ ХЛЕМЮ ТЮИКНБ Б ЙНЛЮМДЕ awk (ЯЛ. ПЮГДЕК 5.8 [ъБМШИ ББНД Я ОНЛНЫЭЧ getline], ЯРП. 53).

5.1 йЮЙ БУНД ДЕКХРЯЪ МЮ ГЮОХЯХ

б МЮВЮКН ЯРПЮМХЖШ

хМРЕПОПЕРЮРНП awk ПЮГДЕКЪЕР ББНД ДКЪ БЮЬЕИ ОПНЦПЮЛЛШ МЮ ГЮОХЯХ Х ОНКЪ. гЮОХЯХ ПЮГДЕКЪЧРЯЪ ГМЮЙЮЛХ, МЮГШБЮЕЛШЛХ ПЮГДЕКХРЕКЪЛХ ГЮОХЯЕИ. оН СЛНКВЮМХЧ, ЩРН ГМЮЙХ newline. оНЩРНЛС ОН СЛНКВЮМХЧ ГЮОХЯХ ЯНБОЮДЮЧР ЯН ЯРПНЙЮЛХ. бШ ЛНФЕРЕ ХЯОНКЭГНБЮРЭ ДПСЦХЕ ЯХЛБНКШ ЙЮЙ ПЮГДЕКХРЕКХ ГЮОХЯЕИ, ОПХЯБЮХБЮЪ ХУ БЯРПНЕММНИ ОЕПЕЛЕММНИ RS.

гМЮВЕМХЕ RS ЛНФМН ЛЕМЪРЭ Б awk-ОПНЦПЮЛЛЕ, ОНДНАМН ДПСЦХЛ ОЕПЕЛЕММШЛ, НОЕПЮРНПНЛ ОПХЯБЮХБЮМХЪ `=' (ЯЛ. ПЮГДЕК 7.7 [оПХЯБЮХБЮЧЫХЕ БШПЮФЕМХЪ], ЯРП. 84). мНБШИ ПЮГДЕКХРЕКЭ ГЮОХЯЕИ МСФМН ГЮЙКЧВЮРЭ Б ЙЮБШВЙХ ДКЪ ЯРПНЙНБНИ ЙНМЯРЮМРШ. нАШВМН ЩРН ДЕКЮЕРЯЪ Б МЮВЮКЕ ХЯОНКМЕМХЪ, ДН НАПЮЫЕМХЪ Й ББНДС, РЮЙ ВРН ЯЮЛЮЪ ОЕПБЮЪ ГЮОХЯЭ АСДЕР ВХРЮРЭЯЪ Я МСФМШЛ ПЮГДЕКХРЕКЕЛ. вРНАШ ЯДЕКЮРЭ ЩРН, ХЯОНКЭГСИРЕ ЯОЕЖХЮКЭМШИ НАПЮГЕЖ Б BEGIN (ЯЛ. ПЮГДЕК 8.1.5 [яОЕЖХЮКЭМШЕ НАПЮГЖШ BEGIN Х END], ЯРП. 100).

 мЮОПХЛЕП:

awk 'BEGIN - RS = "/" "" ; - print $0 ""' BBS-list

ХГЛЕМЪЕР ГМЮВЕМХЕ RS МЮ "/" ДН ВРЕМХЪ ББНДЮ. щРН ЖЕОНВЙЮ, ОЕПБШИ ЯХЛБНК Б ЙНРНПНИ ЕЯРЭ ЯКЕЬ; Б ПЕГСКЭРЮРЕ ГЮОХЯХ ПЮГДЕКЪЧРЯЪ ЯКЕЬЮЛХ. гЮРЕЛ ВХРЮЕРЯЪ БУНДМНИ ТЮИК Х БРНПНЕ ОПЮБХКН Б awk-ОПНЦПЮЛЛЕ (ДЕИЯРБХЕ АЕГ НАПЮГЖЮ) ОЕВЮРЮЕР ЙЮФДСЧ ГЮОХЯЭ. оНЯЙНКЭЙС ЙЮФДШИ НОЕПЮРНП ОЕВЮРХ ДНАЮБКЪЕР newline Б ЙНМЕЖ БШБНДЮ, Б ПЕГСКЭРЮРЕ БШОНКМЕМХЪ ЩРНИ awk-ОПНЦПЮЛЛШ АСДЕР ОНКСВЕМЮ ЙНОХЪ ББНДЮ, ЦДЕ ЙЮФДШИ ЯКЕЬ ГЮЛЕМЕМ МЮ newline.

бНР ПЕГСКЭРЮР ХЯОНКМЕМХЪ ОПНЦПЮЛЛШ МЮ  `BBS-list':

$ awk 'BEGIN - RS = "/" "" ; - print $0 ""' BBS-list
a aardvark 555-5553 1200 
a 300 B 
a alpo-net 555-3412 2400 
a 1200 
a 300 A
a barfly 555-7685 1200 
a 300 A 
a bites 555-1675 2400 
a 1200 
a 300 A
a camelot 555-0542 300 C 
a core 555-2912 1200 
a 300 C 
a fooey 555-1234 2400
a 1200 
a 300 B 
a foot 555-6699 1200 
a 300 B 
a macfoo 555-6480 1200 
a 300 A
a sdace 555-3430 2400 
a 1200 
a 300 A 
a sabafoo 555-2127 1200 
a 300 C
a

гЮЛЕРХЛ, ВРН ГЮОХЯЭ Я `camelot' BBS МЕ ПЮГДЕКЕМЮ. б НПХЦХМЮКЭМНЛ ТЮИКЕ ДЮММШУ (ЯЛ. ПЮГДЕК 1.3 [тЮИКШ Я ДЮММШЛХ ДКЪ ОПХЛЕПНБ], ЯРП. 7), ЩРЮ ЯРПНЙЮ БШЦКЪДХР РЮЙ:

camelot 555-0542 300 C

нМЮ ЯНДЕПФХР РНКЭЙН НДМС baud rate; ОНЩРНЛС Б ГЮОХЯХ МЕР ЯКЕЬЕИ. дПСЦНИ ЯОНЯНА ХГЛЕМХРЭ ПЮГДЕКХРЕКЭ ГЮОХЯЕИ ЕЯРЭ ЙНЛЮМДМЮЪ ЯРПНЙЮ, ХЯОНКЭГСЧЫЮЪ ЯБНИЯРБН ОПХЯБЮХБЮМХЪ ОЕПЕЛЕММНИ (ЯЛ. ПЮГДЕК 14.2 [дПСЦХЕ ЮПЦСЛЕМРШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 165).

awk '- print $0 ""' RS="/" BBS-list

щРН ОПХЯБЮХБЮЕР RS ГМЮВЕМХЕ `/' ОЕПЕД НАПЮАНРЙНИ `BBS-list'. сОНРПЕАКЕМХЕ МЕНАШВМНЦН ЯХЛБНКЮ, РЮЙНЦН ЙЮЙ `/', ДКЪ ПЮГДЕКЕМХЪ ГЮОХЯЕИ ОПХБНДХР Й ОПЮБХКЭМНЛС ОНБЕДЕМХЧ Б ОНДЮБКЪЧЫЕЛ АНКЭЬХМЯРБЕ ЯКСВЮЕБ. нДМЮЙН, ЯКЕДСЧЫХИ (ЩЙЯРПЕЛЮКЭМШИ) ЙНМБЕИЕП ОЕВЮРЮЕР МЕНФХДЮММСЧ `1'. хЛЕЕРЯЪ НДМН ОНКЕ, ЯНЯРНЪЫЕЕ ХГ newline. гМЮВЕМХЕ БЯРПНЕММНИ ОЕПЕЛЕММНИ NF ЕЯРЭ ЙНКХВЕЯРБН ОНКЕИ Б РЕЙСЫЕИ ГЮОХЯХ.

$ echo -- awk 'BEGIN - RS = "a" "" ; - print NF ""'

a 1

дНЯРХФЕМХЕ ЙНМЖЮ ББНДЮ ГЮЙЮМВХБЮЕР РЕЙСЫСЧ БУНДМСЧ ГЮОХЯЭ, ДЮФЕ ЕЯКХ ОНЯКЕДМХИ ЯХЛБНК Б ТЮИКЕ МЕ ЕЯРЭ ЯХЛБНК ХГ RS (d.c.).

оСЯРЮЪ ЖЕОНВЙЮ "" (ЖЕОНВЙЮ АЕГ ЯХЛБНКНБ) ХЛЕЕР ЯОЕЖХЮКЭМШИ ЯЛШЯК Б ЙЮВЕЯРБЕ ГМЮВЕМХЪ RS: НМЮ НГМЮВЮЕР, ВРН ГЮОХЯХ ПЮГДЕКЪЧРЯЪ НДМХЛ ХКХ АНКЭЬЕ ОПНАЕКЮЛХ, Х МХВЕЛ ДПСЦХЛ. яЛ. ПЮГДЕК 5.7 [лМНЦНЯРПНВМШЕ ГЮОХЯХ], ЯРП. 51, ДКЪ ДЕРЮКЕИ.

еЯКХ ХГЛЕМХРЭ ГМЮВЕМХЕ RS Б ОПНЖЕЯЯЕ ХЯОНКМЕМХЪ awk, МНБНЕ ГМЮВЕМХЕ АСДЕР ХЯОНКЭГНБЮРЭЯЪ ДКЪ ПЮГДЕКЕМХЪ ЯКЕДСЧЫХУ ГЮОХЯЕИ ОНЯКЕ НЙНМВЮМХЪ НАПЮАНРЙХ РЕЙСЫЕИ ГЮОХЯХ Я ОПЕФМХЛ ПЮГДЕКХРЕКЕЛ. оН ДНЯРХФЕМХХ ЙНМЖЮ ЩРНИ ГЮОХЯХ gawk СЯРЮМЮБКХБЮЕР ОЕПЕЛЕММСЧ RT ОН РЕЙЯРС БН ББНДЕ, ОПЕДМЮГМЮВЕММНЛС ДКЪ RS. гМЮВЕМХЪ RS МЕ НЦПЮМХВХБЮЧРЯЪ НДМН-ЯХЛБНКЭМШЛХ ЖЕОНВЙЮЛХ. щРН ЛНФЕР АШРЭ КЧАНЕ ПЕЦСКЪПМНЕ БШПЮФЕМХЕ (ЯЛ. цКЮБС 4 [пЕЦСКЪПМШЕ БШПЮФЕМХЪ], ЯРП. 23). б НАЫЕЛ ЯКСВЮЕ, ГЮОХЯЭ НЙЮМВХБЮЕРЯЪ МЮ ОЕПБНИ ЖЕОНВЙЕ, ЯННРБЕРЯРБСЧЫЕИ ЩРНЛС ПЕЦСКЪПМНЛС БШПЮФЕМХЧ; ЯКЕДСЧЫЮЪ ГЮОХЯЭ МЮВХМЮЕРЯЪ ОНЯКЕ ЙНМЖЮ ЩРНИ ЖЕОНВЙХ. щРН НАЫЕЕ ОПЮБХКН ПЮАНРЮЕР Х Б НАШВМНЛ ЯКСВЮЕ, ЙНЦДЮ RS ХЛЕЕР ГМЮВЕМХЕ newline: ГЮОХЯЭ ЙНМВЮЕРЯЪ ОН МЮВЮКС ЯКЕДСЧЫЕИ НАМЮПСФЕММНИ ЯРПНЙХ (ЯКЕДСЧЫЕЕ newline Б ББНДЕ) Х ЯКЕДСЧЫЮЪ ГЮОХЯЭ МЮВХМЮЕРЯЪ ЯПЮГС ОНЯКЕ ЙНМЖЮ ЩРНИ ЯРПНЙХ (Я ОЕПБНЦН ЯХЛБНКЮ ЯКЕДСЧЫЕИ). яХЛБНК newline, ОНЯЙНКЭЙС НМ ЯННРБЕРЯРБСЕР RS, МЕ ЪБКЪЕРЯЪ ВЮЯРЭЧ ГЮОХЯХ.

йНЦДЮ RS ЕЯРЭ ОПНЯРНИ ЯХЛБНК, RT АСДЕР ЯНДЕПФЮРЭ РН ФЕ ГМЮВЕМХЕ. нДМЮЙН, ЕЯКХ RS ЕЯРЭ ПЕЦСКЪПМНЕ БШПЮФЕМХЕ, RT ЯРЮМНБХРЯЪ АНКЕЕ ОНКЕГМНИ; НМЮ ЯНДЕПФХР ТЮЙРХВЕЯЙХ БУНДМНИ РЕЙЯР, ЙНРНПШИ ЯННРБЕРЯРБСЕР ЩРНЛС ПЕЦСКЪПМНЛС БШПЮФЕМХЧ. яКЕДСЧЫХИ ОПХЛЕП ХККЧЯРПХПСЕР НАЕ ЩРХ НЯНАЕММНЯРХ. нМ СЯРЮМЮБКХБЮЕР RS ПЮБМНИ ПЕЦСКЪПМНЛС БШПЮФЕМХЧ, ЙНРНПНЕ ЯННРБЕРЯРБСЕР ХКХ newline, ХКХ ПЪДС ХГ НДМНИ ХКХ АНКЕЕ АСЙБ БЕПУМЕЦН ПЕЦХЯРПЮ, БШАНПНВМН МЮВХМЮЧЫЕИЯЪ Х/ХКХ ЙНМВЮЧЫЕИЯЪ АЕКШЛ ОПНАЕКНЛ (ЯЛ. цКЮБС 4 [пЕЦСКЪПМШЕ БШПЮФЕМХЪ], ЯРП. 23).

$ echo record 1 AAAA 
record 2 BBBB 
record 3 -- ? 
gawk 'BEGIN - RS =
""n--( *[[:upper:]]+ *)" 
"" ? - print "Record =", $0, "and RT =", RT ""'

a Record = record 1 and RT = AAAA 
a Record = record 2 and RT = BBBB
a Record = record 3 and RT = 
a

йНМЕВМЮЪ ЯРПНЙЮ БШУНДЮ ХЛЕЕР ДНОНКМХРЕКЭМСЧ ЯРПНЙС ОПНАЕКНБ. щРН ОПНХЯУНДХР ОНРНЛС, ВРН ГМЮВЕМХЕ RT ЕЯРЭ newline, Х РНЦДЮ НОЕПЮРНП print БШДЮЕР ЯБНЧ ЯНАЯРБЕММСЧ ГЮЙКЧВХРЕКЭМСЧ newline. яЛ. ПЮГДЕК 16.2.8 [оПНЯРНИ ОНРНВМШИ ПЕДЮЙРНП], ЯРП. 242, Н АНКЕЕ ХМРЕПЕЯМНЛ ОПХЛЕПЕ Я RS ЙЮЙ regexp Х Я RT.

хЯОНКЭГНБЮМХЕ RS Б ЙЮВЕЯРБЕ ПЕЦСКЪПМНЦН БШПЮФЕМХЪ Х ОЕПЕЛЕММНИ RT ЕЯРЭ ПЮЯЬХПЕМХЪ gawk; НМХ НРЯСРЯРБСЧР Б ПЕФХЛЕ ЩЛСКЪЖХХ (ЯЛ. ПЮГДЕК 14.1 [ОЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161). б ПЕФХЛЕ ЩЛСКЪЖХХ РНКЭЙН ОЕПБШИ ЯХЛБНК Б ГМЮВЕМХХ RS ХЯОНКЭГСЕРЯЪ ДКЪ НОПЕДЕКЕМХЪ ЙНМЖЮ ГЮОХЯХ. хМРЕПОПЕРЮРНП awk ГЮОНЛХМЮЕР ЙНКХВЕЯРБН ГЮОХЯЕИ, ОПНВХРЮММШУ ХЛ ХГ РЕЙСЫЕЦН БУНДМНЦН ТЮИКЮ. щРН ВХЯКН УПЮМХРЯЪ Б ОЕПЕЛЕММНИ FNR. нМЮ ЯАПЮЯШБЮЕРЯЪ МЮ 0 Б МЮВЮКЕ ВРЕМХЪ ЙЮФДНЦН ТЮИКЮ. дПСЦЮЪ БЯРПНЕММЮЪ ОЕПЕЛЕММЮЪ, NR, ЯНДЕПФХР ОНКМНЕ ЙНКХВЕЯРБН ГЮОХЯЕИ, ОПНВРЕММШУ ХГ БУНДМШУ ТЮИКНБ Я ДЮММШЛХ. нМЮ МЮВХМЮЕР Я 0 Х МХЙНЦДЮ МЕ ЯАПЮЯШБЮЕРЯЪ ЮБРНЛЮРХВЕЯЙХ МЮ 0.

5.2 нАЯКЕДНБЮМХЕ ОНКЕИ

б МЮВЮКН ЯРПЮМХЖШ

йНЦДЮ awk ВХРЮЕР БУНДМСЧ ГЮОХЯЭ, НМЮ ЮБРНЛЮРХВЕЯЙХ ПЮГДЕКЪЕРЯЪ ХМРЕПОПЕРЮРНПНЛ МЮ ВЮЯРХ, МЮГШБЮЕЛШЕ ОНКЪЛХ. оН СЛНКВЮМХЧ, ОНКЪ ПЮГДЕКЪЧРЯЪ ОПНАЕКЮЛХ, ЙЮЙ ЯКНБЮ Б ЯРПНЙЕ. оПНАЕК Б ЯРПНЙЕ awk НГМЮВЮЕР НДХМ ХКХ АНКЕЕ ОПНАЕКНБ, ГМЮЙНБ tabs ХКХ newlines; ДПСЦХЕ ЯХЛБНКШ, РЮЙХЕ ЙЮЙ formfeed Х ОП., ЙНРНПШЕ ХЛЕЧР ЯЛШЯК ОПНАЕКНБ (whitespace) Б ДПСЦХУ ЪГШЙЮУ, Б awk МЕ ЯВХРЮЧРЯЪ РЮЙНБШЛХ. мЮГМЮВЕМХЕ ОНКЕИ --- НАКЕЦВХРЭ ДНЯРСО Й ЯННРБЕРЯРБСЧЫХЛ ВЮЯРЪЛ ГЮОХЯХ. еЯКХ БШ МЕ УНРХРЕ ЩРХЛ ОНКЭГНБЮРЭЯЪ, БШ ЛНФЕРЕ НОЕПХПНБЮРЭ Я ЖЕКНИ ГЮОХЯЭЧ, МН ОНКЪ --- ЩРН РН, ВРН ДЕКЮЕР ОПНЯРШЕ ОПНЦПЮЛЛШ awk НВЕМЭ СДНАМШЛХ. дКЪ ЯЯШКЙХ МЮ ОНКЕ Б awk-ОППНЦПЮЛЛЕ ХЯОНКЭГСЧР ГМЮЙ ДНККЮПЮ,

 `$', Я МНЛЕПНЛ МСФМНЦН ОНКЪ ОНЯКЕ МЕЦН. 
 рЮЙ, $1 ЕЯРЭ ЯЯШКЙЮ МЮ ОЕПБНЕ ОНКЕ,
 
 $2 --- МЮ БРНПНЕ Х Р.Д. 

 оПЕДОНКНФХЛ, ЯРПНЙЮ ББНДЮ ЕЯРЭ:
 
 This seems like a pretty nice example.

гДЕЯЭ ОЕПБНЕ ОНКЕ, ХКХ $1, ЕЯРЭ `This'; 
БРНПНЕ ОНКЕ, ХКХ $2, ЕЯРЭ `seems'; Х Р.Д. 
гЮЛЕРХЛ, ВРН ОНЯКЕДМЕЕ ОНКЕ, $7, ЕЯРЭ  `example.'. 
рЮЙ ЙЮЙ МЕР ОПНАЕКЮ
ЛЕФДС `e' Х `.', РНВЙЮ БУНДХР ЯНЯРЮБ ЯЕДЭЛНЦН ОНКЪ.

гМЮВЕМХЕ БЯРПНЕММНИ ОЕПЕЛЕММНИ NF ЕЯРЭ ЙНКХВЕЯРБН ОНКЕИ Б РЕЙСЫЕИ ГЮОХЯХ. awk НАМНБКЪЕР ГМЮВЕМХЕ NF ЮБРНЛЮРХВЕЯЙХ ОПХ ЙЮФДНЛ ВРЕМХХ ГЮОХЯХ. мЕГЮБХЯХЛН НР ЙНКХВЕЯРБЮ ОНКЕИ, ОНЯКЕДМЕЕ ОНКЕ ГЮОХЯХ ЛНФЕР АШРЭ ОПЕДЯРЮБКЕМН ЙЮЙ $NF. рЮЙХЛ НАПЮГНЛ, Б ОПЕДШДСЫЕЛ ОПХЛЕПЕ $NF АСДЕР РН ФЕ, ВРН Х $7, Р.Е. `example.'. йЮЙ ЩРН ПЮАНРЮЕР, НАЗЪЯМЪЕРЯЪ МХФЕ (ЯЛ. ПЮГДЕК 5.3 [мЕОНЯРНЪММШЕ МНЛЕПЮ ОНКЕИ], ЯРП. 41). еЯКХ БШ ОШРЮЕРЕЯЭ ЯНЯКЮРЭЯЪ МЮ ОНКЕ ОНЯКЕ ОНЯКЕДМЕЦН, $8, ЙНЦДЮ ГЮОХЯЭ ХЛЕЕР РНКЭЙН 7 ОНКЕИ, БШ ОНКСВЮЕРЕ ОСЯРСЧ ЖЕОНВЙС.

б POSIX awk ЯХЛБНКШ newline МЕ ПЮЯЯЛЮРПХБЮЧРЯЪ ЙЮЙ ОПНАЕКШ (whitespace) ДКЪ ПЮГДЕКЕМХЪ ОНКЕИ. $0, ВРН БШЦКЪДХР ЙЮЙ ЯЯШКЙЮ МЮ " МСКЕБНЕ" ОНКЕ, ОПЕДЯРЮБКЪЕР ЯОЕЖХЮКЭМШИ ЯКСВЮИ: НМЮ ОПЕДЯРЮБКЪЕР БЯЧ БУНДМСЧ ГЮОХЯЭ. $0 ХЯОНКЭГСЕРЯЪ, ЙНЦДЮ БШ МЕ ГЮХМРЕПЕЯНБЮМШ Б ОНКЪУs.

оПХБЕДЕЛ МЕЯЙНКЭЙН ОПХЛЕПНБ.

$ awk '$1 ~ /foo/ - print $0 ""' BBS-list

a fooey 555-1234 2400/1200/300 B 
a foot 555-6699 1200/300 B
a macfoo 555-6480 1200/300 A 
a sabafoo 555-2127 1200/300 C

щРНР ОПХЛЕП ОЕВЮРЮЕР ЙЮФДСЧ ГЮОХЯЭ ХГ ТЮИКЮ `BBS-list', С ЙНРНПНИ ОЕПБНЕ ОНКЕ ЯНДЕПФХР ЖЕОНВЙС `foo'. нОЕПЮРНП `~' МЮГШБЮЕРЯЪ НОЕПЮРНП ЯННРБЕРЯРБХЪ (ЯЛ. ПЮГДЕК 4.1 [йЮЙ ХЯОНКЭГНБЮРЭ ПЕЦСКЪПМШЕ БШПЮФЕМХЪ], ЯРП. 23); НМ ОПНБЕПЪЕР ЯННРБЕРЯРБХЕ ЖЕОНВЙХ (ГДЕЯЭ ЩРН ОНКЕ $1) ДЮММНЛС ПЕЦСКЪПМНЛС БШПЮФЕМХЧ. яКЕДСЧЫХИ ОПХЛЕП ХЫЕР `foo' Б ЖЕКНИ ГЮОХЯХ Х ОЕВЮРЮЕР ОЕПБНЕ Х ОНЯКЕДМЕЕ ОНКЪ ЙЮФДНИ БУНДМНИ ГЮОХЯХ, СДНБКЕРБНПЪЧЫЕИ РЮЙНЛС ЯННРБЕРЯРБХЧ:

$ awk '/foo/ - print $1, $NF ""' BBS-list
a fooey B 
a foot B 
a macfoo A 
a sabafoo C

5.3 мЕОНЯРНЪММШЕ МНЛЕПЮ ОНКЕИ

б МЮВЮКН ЯРПЮМХЖШ

мНЛЕП ОНКЪ МЕ НАЪГЮМ АШРЭ ЙНМЯРЮМРНИ. кЧАНЕ БШПЮФЕМХЕ ЪГШЙЮ awk ЛНФЕР АШРЭ ХЯОНКЭГНБЮМН ОНЯКЕ `$' ДКЪ ЯЯШКЙХ МЮ ОНКЕ. гМЮВЕМХЕ БШПЮФЕМХЪ СЙЮГШБЮЕР МНЛЕП ОНКЪ. еЯКХ ГМЮВЕМХЕ ЕЯРЭ МЕ ВХЯКН, Ю ЖЕОНВЙЮ, НМЮ ЙНМБЕПРХПСЕРЯЪ Б МНЛЕП.

пЮЯЯЛНРПХЛ РЮЙНИ ОПХЛЕП:

awk '- print $NR ""'

мЮОНЛМХЛ, ВРН NR ЕЯРЭ ЙНКХВЕЯРБН ОПНВХРЮММШУ ДН МЮЯРНЪЫЕЦН ЛНЛЕМРЮ ГЮОХЯЕИ: НДХМ ДКЪ ОЕПБНИ ГЮОХЯХ, ДБЮ БН БРНПНИ, Х Р.Д. рЮЙ ВРН ЩРНР ОПХЛЕП ОЕВЮРЮЕР ОЕПБНЕ ОНКЕ ОЕПБНИ ГЮОХЯХ, БРНПНЕ ОНКЕ БРНПНИ ГЮОХЯХ, Х Р.Д. дКЪ ДБЮДЖЮРНИ ГЮОХЯХ ОЕВЮРЮЕРЯЪ ОНКЕ МНЛЕП 20; НАШВМН ГЮОХЯЭ ХЛЕЕР ЛЕМЭЬЕ 20 ОНКЕИ, РЮЙ ВРН ЩРН АСДЕР ОСЯРЮЪ ЯРПНЙЮ.

бНР ДПСЦНИ ОПХЛЕП ХЯОНКЭГНБЮМХЪ БШПЮФЕМХЪ 
Б ЙЮВЕЯРБЕ МНЛЕПЮ ОНКЪ:

awk '- print $(2*2) ""' BBS-list

awk ДНКФЕМ БШВХЯКХРЭ БШПЮФЕМХЕ `(2*2)' Х ХЯОНКЭГНБЮРЭ ЕЦН ГМЮВЕМХЕ ЙЮЙ МНЛЕП ОНКЪ ДКЪ ОЕВЮРХ. гМЮЙ `*' НГМЮВЮЕР СЛМНФЕМХЕ, РЮЙ ВРН БШПЮФЕМХЕ `2*2' БШВХЯКЪЕРЯЪ ЙЮЙ ВЕРШПЕ. яЙНАЙХ СОНРПЕАКЕМШ ДКЪ РНЦН, ВРНАШ СЛМНФЕМХЕ АШКН ОПНХГБЕДЕМН ДН НОЕПЮЖХХ `$'; НМХ МЕНАУНДХЛШ БЯЕЦДЮ, ЙНЦДЮ Б БШПЮФЕМХХ ДКЪ МНЛЕПЮ ОНКЪ БЯРПЕВЮЕРЯЪ АХМЮПМЮЪ НОЕПЮЖХЪ. мЮЬ ОПХЛЕП ОНЩРНЛС ОЕВЮРЮЕР НОЕПЮЖХНММШЕ ВЮЯШ (ВЕРБЕПРНЕ ОНКЕ) ЙЮФДНИ ЯРПНЙХ ТЮИКЮ `BBS-list'.

(бЯЕ НОЕПЮРНПШ awk ОЕПЕВХЯКЕМШ Б ОНПЪДЙЕ САШБЮМХЪ ОПХНПХРЕРЮ Б ПЮГДЕКЕ 7.14 [оПХНПХРЕР НОЕПЮРНПНБ (йЮЙ НОЕПЮРНПШ ЦМЕГДЪРЯЪ)], ЯРП. 94.) еЯКХ БШВХЯКЕММШИ МНЛЕП ОНКЪ ЕЯРЭ 0, БШ ОНКСВЮЕРЕ БЯЧ ГЮОХЯЭ. рЮЙ, $(2-2) ХЛЕЕР РНР ФЕ ЯЛШЯК, ВРН Х $0. нРПХЖЮРЕКЭМШЕ МНЛЕПЮ ОНКЕИ МЕДНОСЯРХЛШ; РЮЙЮЪ ЯЯШКЙЮ НАШВМН ОПХБНДХР Й ОПЕЙПЮЫЕМХЧ ХЯОНКМЕМХЪ ОПНЦПЮЛЛШ. (яРЮМДЮПР POSIX МЕ ОПЕДСЯЛЮРПХБЮЕР НРПХЖЮРЕКЭМНИ ЯЯШКЙХ МЮ МНЛЕП ГЮОХЯХ. gawk ГЮЛЕВЮЕР ЩРН Х ОПЕЙПЮЫЮЕР БШОНКМЕМХЕ ОПНЦПЮЛЛШ. дПСЦХЕ ПЕЮКХГЮЖХХ awk ЛНЦСР БЕЯРХ ЯЕАЪ ОН-ДПСЦНЛС.)

йЮЙ СОНЛХМЮКНЯЭ Б ПЮГДЕКЕ 5.2 [нАЯКЕДНБЮМХЕ ОНКЕИ], ЯРП. 40, ЙНКХВЕЯРБН ОНКЕИ РЕЙСЫЕИ ГЮОХЯХ ЯНДЕПФХРЯЪ Б БЯРПНЕММНИ ОЕПЕЛЕММНИ NF (ЯЛ. РЮЙФЕ цК. 10 [бЯРПНЕММШЕ ОЕПЕЛЕММШ, ЯРП. 115). бШПЮФЕМХЕ $NF МЕ ХЛЕЕР ЯОЕЖХЮКЭМНЦН ЯЛШЯКЮ Х ХЯОНКЭГСЕР ГМЮВЕМХЕ NF ЙЮЙ МНЛЕП ОНКЪ.

5.4 хГЛЕМЕМХЕ ЯНДЕПФХЛНЦН ОНКЪ

б МЮВЮКН ЯРПЮМХЖШ

бШ ЛНФЕРЕ ХГЛЕМЪРЭ ЯНДЕПФХЛНЕ ОНКЪ, ОПНВРЕММНЕ awk, БМСРПХ awk-ОПНЦПЮЛЛШ; щРХ ХГЛЕМЕМХЪ ГЮРПЮЦХБЮЧР РНКЭЙН ХМТНПЛЮЖХЧ, БНЯОПХМЪРСЧ ОПНЦПЮЛЛНИ ЙЮЙ РЕЙСЫЮЪ БУНДМЮЪ ГЮОХЯЭ. (яЮЛ ББНД НЯРЮЕРЯЪ МЕХГЛЕММШЛ, awk МХЙНЦДЮ МЕ ХГЛЕМЪЕР БУНДМНИ ТЮИК.)

пЮЯЯЛНРПХЛ ЯКЕДСЧЫХИ ОПХЛЕП Х ЕЦН ПЕГСКЭРЮР:

$ awk '- $3 = $2 - 10; 
print $2, $3 ""' inventory-shipped

a 13 3 
a 15 5 
a 15 5...

гМЮЙ `-' НГМЮВЮЕР БШВХРЮМХЕ, РЮЙ ВРН ЩРЮ ОПНЦПЮЛЛЮ ХГЛЕМЪЕР ОНКЕ РПХ, $3, ОПХЯБЮХБЮЪ ЕЛС ГМЮВЕМХЕ ОНКЪ 2 ЛХМСЯ ДЕЯЪРЭ, `$2 - 10'. (яЛ. ПЮГДЕК 7.5 [юПХТЛЕРХВЕЯЙХЕ НОЕПЮЖХХ], ЯРП. 82.) гЮРЕЛ ОНКЕ ДБЮ Х МНБНЕ ГМЮВЕМХЕ ДКЪ ОНКЪ РПХ ОЕВЮРЮЧРЯЪ.

дКЪ РНЦН, ВРНАШ БЯЕ ЩРН ПЮАНРЮКН, РЕЙЯР Б ОНКЕ $2 ДНКФЕМ ХЛЕРЭ ЯЛШЯК ЙЮЙ ВХЯКН; ЖЕОНВЙЮ ЯХЛБНКНБ ДНКФМЮ АШРЭ ОПЕБПЮЫЕМЮ Б ВХЯКН, МЮД ЙНРНПШЛ ЙНЛОЭЧРЕП ЛНФЕР ОПНХГБЕЯРХ ЮПХТЛЕРХВЕЯЙХЕ ДЕИЯРБХЪ. пЕГСКЭРЮР БШВХРЮМХЪ ЙНМБЕПРХПСЕРЯЪ НОЪРЭ Б ЖЕОНВЙС ЯХЛБНКНБ, ЙНРНПЮЪ ЯРЮМНБХРЯЪ ОНКЕЛ РПХ. яЛ. ПЮГДЕК 7.4 [йНМБЕПЯХЪ ЖЕОНВЕЙ Х ВХЯЕК], ЯРП. 81.

йНЦДЮ БШ ХГЛЕМЪЕРЕ ГМЮВЕМХЕ ОНКЪ (БНЯОПХМЪРНЦН ОПНЦПЮЛЛНИ awk), РЕЙЯР БУНДМНИ ГЮОХЯХ ОЕПЕ БШВХЯКЪЕРЯЪ, ВРНАШ ЯНДЕПФЮРЭ МНБНЕ ОНКЕ РЮЛ, ЦДЕ АШКН ЯРЮПНЕ. оНЩРНЛС $0 ХГЛЕМЪЕРЯЪ ЯННРБЕРЯРБЕММН ХГЛЕМЕММШЛ ОНКЪЛ. рЮЙХЛ НАПЮГНЛ, ОПНЦПЮЛЛЮ ОЕВЮРЮЕР ЙНОХЧ БУНДМНЦН ТЮИКЮ, Б ЙНРНПНИ БРНПШЕ ОНКЪ Б ЙЮФДНИ ГЮОХЯХ СЛЕМЭЬЕМШ МЮ 10.

$ awk '- $2 = $2 - 10; 
print $0 ""' inventory-shipped

a Jan 3 25 15 115 
a Feb 5 32 24 226 
a Mar 5 24 34 228...

бШ ЛНФЕРЕ РЮЙФЕ ОПХЯБЮХБЮРЭ ЯНДЕПФЮМХЕ ОНКЪЛ, 
БШУНДЪЫХЛ ГЮ ПЮЛЙХ ГЮОХЯХ.

мЮОПХЛЕП,

$ awk '- $6 = ($5 + $4 + $3 + $2) ? 
print $6 ""' inventory-shipped

a 168 
a 297 
a 301 ...

лШ ЯНГДЮКХ $6, гМЮВЕМХЕ ЙНРНПНЦН ЕЯРЭ ЯСЛЛЮ ОНКЕИ $2, $3, $4 Х $5. гМЮЙ `+' ОПЕДЯРЮБКЪЕР ЯКНФЕМХЕ. дКЪ ТЮИКЮ `inventory-shipped' $6 ОПЕДЯРЮБКЪЕР НАЫЕЕ ЙНКХВЕЯРБН ОЮЙЕРНБ, ОНЯКЮММШУ ЛНПЕЛ Б НОПЕДЕКЕММШИ ЛЕЯЪЖ.

яНГДЮМХЕ МНБНЦН ОНКЪ ХГЛЕМЪЕР БМСРПЕММЧЧ ЙНОХЧ РЕЙСЫЕИ ГЮОХЯХ, ЯДЕКЮММСЧ awk-ОПНЦПЮЛЛНИ, Р.Е. ГМЮВЕМХЕ $0. рЮЙ, ЕЯКХ БШ БШОНКМЪЕРЕ `print $0' ОНЯКЕ ДНАЮБКЕМХЪ ОНКЪ, ОЕВЮРЮЕРЯЪ ГЮОХЯЭ Я ДНАЮБКЕММШЛ ОНКЕЛ Х Я ЯННРБЕРЯРБСЧЫХЛ ЙНКХВЕЯРБНЛ ПЮГДЕКХРЕКЕИ ОНКЕИ ЛЕФДС МХЛ Х ЯСЫЕЯРБНБЮБЬХЛХ ПЮМЕЕ ОНКЪЛХ.

рЮЙНЕ ОЕПЕ БШВХЯКЕМХЕ ГЮБХЯХР НР NF Х ХГЛЕМЪЕР NF (ЙНКХВЕЯРБН ОНКЕИ; ЯЛ. ПЮГДЕК 5.2 [нАЯКЕДНБЮМХЕ ОНКЕИ], ЯРП.40), Х БЯКЕДЯРБХЕ ЯБНИЯРБЮ, ЙНРНПНЕ ЕЫЕ МЕ ПЮЯЯЛЮРПХБЮКНЯЭ, ХГЛЕМЪЕР РЮЙФЕ ПЮГДЕКХРЕКЭ БШУНДМШУ ОНКЕИ, OFS, ЙНРНПШИ ХЯОНКЭГСЕРЯЪ ДКЪ ПЮГДЕКЕМХЪ ОНКЕИ (ЯЛ. ПЮГДЕК 6.3 [бШУНДМШЕ ПЮГДЕКХРЕКХ], ЯРП. 63). мЮОПХЛЕП, NF ОПХЯБЮХБЮЕРЯЪ ГМЮВЕМХЕ МНЛЕПЮ ЯРЮПЬЕЦН ОНКЪ, ЙНРНПНЕ БШ ЯНГДЮКХ.

гЮЛЕРХЛ БЛЕЯРЕ Я РЕЛ, ВРН НДМЮ РНКЭЙН ЯЯШКЙЮ МЮ ОНКЕ БМЕ ПЮЛНЙ ГЮОХЯХ МЕ ХГЛЕМЪЕР ГМЮВЕМХЪ МХ $0 МХ NF. яЯШКЙЮ МЮ ОНКЕ БМЕ ГЮОХЯХ ОПНХГБНДХР РНКЭЙН ОСЯРСЧ ЖЕОНВЙС.

мЮОПХЛЕП,

if ($(NF+1) != "") 
	print "can't happen" 
		else print "everything is normal"

МЮОЕВЮРЮЕР `everything is normal', ОНРНЛС ВРН NF+1 ЙНМЕВМН БШУНДХР ГЮ ПЮЛЙХ. (яЛ. ПЮГДЕК 9.1 [нОЕПЮРНП if-else], ЯРП. 105, НОХЯШБЮЧЫХИ ОНДПНАМН НОЕПЮРНПШ if-else. яЛ. ПЮГДЕК 7.10 [оЕВЮРЭ ОЕПЕЛЕММШУ Х БШПЮФЕМХЪ ЯПЮБМЕМХЪ], ЯРП. 88, Я ОНДПНАМНИ ХМТНПЛЮЖХЕИ НА НОЕПЮРНПЕ `!='.)

бЮФМН ГЮЛЕРХРЭ, ВРН ОПХЯБЮХБЮМХЕ ГМЮВЕМХЪ ЯСЫЕЯРБСЧЫЕЛС ОНКЧ ХГЛЕМЪЕР ГМЮВЕМХЕ $0, МН МЕ ЛЕМЪЕР ГМЮВЕМХЕ NF, ДЮФЕ ЕЯКХ БШ ОПХЯБЮХБЮЕРЕ ОСЯРСЧ ЖЕОНВЙС ОНКЧ.

мЮОПХЛЕП:

$ echo a b c d -- awk '- OFS = ":"; 
$2 = "" ? print 
$0; print NF ""'
a a::c:d
a 4

оНКЕ БЯЕ ЕЫЕ РЮЛ; НМН РНКЭЙН ХЛЕЕР ОСЯРНЕ ГМЮВЕМХЕ . щРН БХДМН БЯКЕДЯРБХЕ ДБСУ ДБНЕРНВХИ ОНДПЪД. яКЕДСЧЫХИ ОПХЛЕП ОНЙЮГШБЮЕР, ВРН ОПНХЯУНДХР, ЙНЦДЮ ЯНГДЮЕРЯЪ МНБНЕ ОНКЕ.

$ echo a b c d -- awk '- OFS = ":"; 
$2 = ""; 
$6 = "new" ? 
print $0;
print NF ""'
a a::c:d::new
a 6

яНГДЮЕРЯЪ БЯРЮБКЕММНЕ ОНКЕ $5 Я ОСЯРШЛ ГМЮВЕМХЕЛ (НМН ОНЙЮГЮМН БРНПНИ ОЮПНИ ЯНЯЕДМХУ ДБНЕРНВХИ, Ю NF ОНКСВЮЕР ГМЮВЕМХЕ ЬЕЯРЭ. сЛЕМЭЬЕМХЕ NF ОПХБЕР Й ОНРЕПЕ ГМЮВЕМХИ ОНКЕИ, МНЛЕПЮ ЙНРНПШУ АНКЭЬЕ ГМЮВЕМХЪ NF, Х Й ОЕПЕ БШВХЯКЕМХЧ $0. бНР ЯННРБЕРЯРБСЧЫХИ ОПХЛЕП:

$ echo a b c d e f -- ../gawk '- print "NF =", NF;
? NF = 3; print $0 ""'
a NF = 6
a a b c

5.5 гЮДЮМХЕ ПЮГДЕКХРЕКЕИ ОНКЕИ

б МЮВЮКН ЯРПЮМХЖШ

щРНР ПЮГДЕК ДНБНКЭМН ДКХМЕМ; Б МЕЛ НОХЯШБЮЕРЯЪ НДМЮ ХГ МЮХАНКЕЕ ТСМДЮЛЕМРЮКЭМШУ НОЕПЮЖХИ Б awk.

5.5.1 нЯМНБМШЕ ЯБЕДЕМХЪ Н ПЮГДЕКЕМХХ ОНКЕИ

б МЮВЮКН ЯРПЮМХЖШ

пЮГДЕКХРЕКЭ ОНКЕИ, ЙНРНПШИ ЪБКЪЕРЯЪ КХАН НРДЕКЭМШЛ ЯХЛБНКНЛ КХАН ПЕЦСКЪПМШЛ БШПЮФЕМХЕЛ, НОПЕДЕКЪЕР ЯОНЯНА ПЮГДЕКЕМХЪ БУНДМНИ ГЮОХЯХ МЮ ОНКЪ. awk ЯЙЮМХПСЕР БУНДМСЧ ГЮОХЯЭ Б ОНХЯЙЮУ ОНЯКЕДНБЮРЕКЭМНЯРХ ЯХЛБНКНБ, ЯННРБЕРЯРБСЧЫЕИ ПЮГДЕКХРЕКЧ ОНКЕИ; ЯЮЛХ ОНКЪ ОПЕДЯРЮБКЪЧР РЕЙЯР ЛЕФДС ПЮГДЕКХРЕКЪЛХ.

б ДЮКЭМЕИЬХУ ОПХЛЕПЮУ ЛШ ХЯОНКЭГСЕЛ ЛЮПЙХПСЧЫХИ ЯХЛБНК "ffl" ДКЪ ОПЕДЯРЮБКЕМХЪ ОПНАЕКНБ Б БШУНДЕ. еЯКХ ПЮГДЕКХРЕКЭ ОНКЕИ ЕЯРЭ `oo', РН ЯКЕДСЧЫЮЪ ЯРПНЙЮ:

moo goo gai pan

ПЮГАХБЮЕРЯЪ МЮ РПХ ОНКЪ: `m', `fflg' Х `fflgaifflpan'. нРЛЕРХЛ БЕДСЫХЕ ОПНАЕКШ Б ГМЮВЕМХЪУ БРНПНЦН Х РПЕРЭЕЦН ОНКЕИ. пЮГДЕКХРЕКЭ ОНКЕИ ОПЕДЯРЮБКЪЕРЯЪ БЯРПНЕММНИ ОЕПЕЛЕММНИ FS. яХЯРЕЛМШЕ ОПНЦПЮЛЛХЯРШ, НАПЮРХРЕ БМХЛЮМХЕ! б awk МЕ ХЯОНКЭГСЕРЯЪ ХЛЪ IFS, ХЯОНКЭГСЕЛНЕ НАНКНВЙЮЛХ, ЯНБЛЕЯРХЛШЛХ Я POSIX (РЮЙХЛХ ЙЮЙ Bourne shell, sh, ХКХ GNU BourneAgain Shell, Bash).

б awk-ОПНЦПЮЛЛЕ ЛНФМН ЛЕМЪРЭ ГМЮВЕМХЕ FS НОЕПЮРНПНЛ ОПХЯБЮХБЮМХЪ, `=' (ЯЛ. ПЮГДЕК 7.7 [оПХЯБЮХБЮЧЫХЕ БШПЮФЕМХЪ], ЯРП. 84). вЮЯРН ЩРН СДНАМН ДЕКЮРЭ Б МЮВЮКЕ БШОНКМЕМХЪ, ОЕПЕД МЮВЮКНЛ НАПЮАНРЙХ ББНДЮ, РЮЙ ВРН ЯЮЛЮЪ ОЕПБЮЪ ГЮОХЯЭ АСДЕР ВХРЮРЭЯЪ Я ОПЮБХКЭМШЛ ПЮГДЕКХРЕКЕЛ. вРНАШ ЩРН ЯДЕКЮРЭ, ХЯОНКЭГСИРЕ ЯОЕЖХЮКЭМШИ НАПЮГЕЖ BEGIN (ЯЛ. ПЮГДЕК 8.1.5 [яОЕЖХЮКЭМШЕ НАПЮГЖШ BEGIN Х END], ЯРП. 100).

мЮОПХЛЕП, ГДЕЯЭ ЛШ ОПХЯБЮХБЮЕЛ FS ГМЮВЕМХЕ ЖЕОНВЙХ ",":

awk 'BEGIN - FS = "," "" ; - print $2 ""'

хГ БУНДМНИ ЯРПНЙХ

John Q. Smith, 29 Oak St., Walamazoo, MI 42139

ЩРЮ awk-ОПНЦПЮЛЛЮ ХГБКЕВЕР Х  МЮОЕВЮРЮЕР ЖЕОНВЙС 

 `ffl29fflOakfflSt.'.

хМНЦДЮ БУНДМШЕ ДЮММШЕ ЯНДЕПФЮР ПЮГДЕКХРЕКЭМШЕ ЯХЛБНКШ, ЙНРНПШЕ МЕ ПЮГДЕКЪЧР ОНКЪ РЮЙХЛ НАПЮГНЛ, ЙЮЙ БШ ОНКЮЦЮЕРЕ, ВРН НМХ ДНКФМШ ПЮГДЕКЪРЭ. мЮОПХЛЕП, КХВМНЕ ХЛЪ Б ОПЕДШДСЫЕЛ ОПХЛЕПЕ ЛНФЕР ХЛЕРЭ ДНАЮБЙНИ РХРСК ХКХ ЯСТТХЙЯ, РЮЙНИ ЙЮЙ `John Q. Smith, LXIX'. дКЪ БУНДМНИ ГЮОХЯХ Я РЮЙХЛ ХЛЕМЕЛ: John Q. Smith, LXIX, 29 Oak St., Walamazoo, MI 42139 ОПЕДШДСЫЮЪ ОПНЦПЮЛЛЮ ХГБКЕВЕР `fflLXIX' БЛЕЯРН `ffl29fflOakfflSt.'. еЯКХ БШ НФХДЮЕРЕ, ВРН ОПНЦПЮЛЛЮ МЮОЕВЮРЮЕР ЮДПЕЯ, БШ АСДЕРЕ НВЕМЭ СДХБКЕМШ. лНПЮКЭ РЮЙНБЮ: БШАХПЮИРЕ ЯРПСЙРСПС ДЮММШУ Х ЯХЛБНКШ-ПЮГДЕКХРЕКХ РЫЮРЕКЭМН, ВРНАШ ОПЕДНРБПЮРХРЭ ОНДНАМШЕ ЯКСВЮХ.

йЮЙ БШ ГМЮЕРЕ, ОН СЛНКВЮМХЧ ОНКЪ ПЮГДЕКЪЧРЯЪ ОНЯКЕДНБЮРЕКЭМНЯРЪЛХ АЕКШУ ОПНАЕКНБ (Р.Е. (ОПНАЕКЮЛХ, ГМЮЙЮЛХ tab Х newline), МН МЕ ЕДХМХВМШЛХ ОПНАЕКЮЛХ: ДБЮ ОПНАЕКЮ ОНДПЪД МЕ НЦПЮМХВХБЮЧР ОСЯРНЕ ОНКЕ. оН СЛНКВЮМХЧ ПЮГДЕКХРЕКЭ ОНКЕИ FS ХЛЕЕР ГМЮВЕМХЕ ЖЕОНВЙХ, ЯНДЕПФЮЫЕИ НДХМ ОПНАЕК " ". еЯКХ АШ ЩРН ГМЮВЕМХЕ ХМРЕПОПЕРХПНБЮКНЯЭ НАШВМШЛ ОСРЕЛ, Р.Е. ЙЮФДШИ ОПНАЕК ЯВХРЮКЯЪ ПЮГДЕКХРЕКЕЛ ОНКЕИ, РН ДБЮ ОПНАЕКЮ ОНДПЪД ЯНДЕПФЮКХ АШ ЛЕФДС ЯНАНИ ОСЯРНЕ ОНКЕ. щРНЦН МЕ ОПНХЯУНДХР, ОНРНЛС ВРН ЕДХМЯРБЕММШИ ОПНАЕК Б ЙЮВЕЯРБЕ ГМЮВЕМХЪ FS ОПЕДЯРЮБКЪЕР ЯОЕЖХЮКЭМШИ ЯКСВЮИ: НМ НГМЮВЮЕР ПЮГДЕКЕМХЕ ОНКЕИ ОН СЛНКВЮМХЧ. еЯКХ FS ХЛЕЕР ГМЮВЕМХЕЛ ЙЮЙНИ-МХАСДЭ ДПСЦНИ НРДЕКЭМШИ ЯХЛБНК, РЮЙНИ ЙЮЙ ",", РН ЙЮФДНЕ БУНФДЕМХЕ ЩРНЦН ЯХЛБНКЮ ПЮГДЕКЪЕР ДБЮ ОНКЪ. дБЮ ОНЯКЕДНБЮРЕКЭМШУ БУНФДЕМХЪ НЦПЮМХВХБЮЧР ОСЯРНЕ ОНКЕ. еЯКХ ЯХЛБНК ЯРНХР Б МЮВЮКЕ ХКХ ЙНМЖЕ ЯРПНЙХ, РН РНФЕ НРДЕКЪЕР ОСЯРНЕ ОНКЕ. яХЛБНК ОПНАЕКЮ ЕЯРЭ ЕДХМЯРБЕММШИ НДХМНВМШИ ЯХЛБНК, ЙНРНПШИ МЕ ОНДВХМЪЕРЯЪ ЩРХЛ ОПЮБХКЮЛ.

5.5.2 хЯОНКЭГНБЮМХЕ ПЕЦСКЪПМШУ БШПЮФЕМХИ ДКЪ ПЮГДЕКЕМХЪ ОНКЕИ

б МЮВЮКН ЯРПЮМХЖШ

б ОПЕДШДСЫЕЛ ОНДПЮГДЕКЕ НАЯСФДЮКНЯЭ СОНРПЕАКЕМХЕ НРДЕКЭМШУ ЯХЯЛБНКНБ ХКХ ОПНЯРШУ ЖЕОНВЕЙ Б ЙЮВЕЯРБЕ ГМЮВЕМХЪ FS. бННАЫЕ ГМЮВЕМХЕ FS ЛНФЕР АШРЭ ЖЕОНВЙНИ, ЯНДЕПФЮЫЕИ КЧАНЕ ПЕЦСКЪПМНЕ БШПЮФЕМХЕ. б РЮЙНЛ ЯКСВЮЕ ЙЮФДНЕ ЯНБОЮДЕМХЕ Б ГЮОХЯХ Я ПЕЦСКЪПМШЛ БШПЮФЕМХЕЛ ЕЯРЭ ПЮГДЕКХРЕКЭ ОНКЕИ.

мЮОПХЛЕП, ОПХЯБЮХБЮМХЕ:

FS = ", "t"

ДЕКЮЕР ЙЮФДСЧ ВЮЯРЭ БУНДМНИ ЯРПНЙХ, ЯНЯРНЪЫСЧ ХГ ГЮОЪРНИ Я ОНЯКЕДСЧЫХЛ ОПНАЕКНЛ Х tab, ПЮГДЕКХРЕКЕЛ ОНКЕИ. (`"t' ЕЯРЭ СОПЮБКЪЧЫЮЪ ОНЯКЕДНБЮРЕКЭМНЯРЭ, ЙНРНПЮЪ НАНГМЮВЮЕР ГМЮЙ tab, ЯЛ. ПЮГДЕК 4.2 [сОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ], ЯРП. 24, ЯНДЕПФЮЫХИ ОНКМШИ ЯОХЯНЙ СОПЮБКЪЧЫХУ ОНЯКЕДНБЮРЕКЭМНЯРЕИ.)

ю БНР ЛЕМЕЕ РПХБХЮКЭМШИ ОПХЛЕП ПЕЦСКЪПМНЦН БШПЮФЕМХЪ. оПЕДОНКНФХЛ, БЮЛ МСФМН ХЛЕРЭ ПЮГДЕКХРЕКЪЛХ НРДЕКЭМШЕ ОПНАЕКШ, ЙЮЙ БШЬЕ ДКЪ ЩРНЦН ХЯОНКЭГНБЮКХЯЭ НРДЕКЭМШЕ ГЮОЪРШЕ. бШ ЛНФЕРЕ ОПХЯБНХРЭ FS "[ ]" (КЕБЮЪ ЙБЮДПЮРМЮЪ ЯЙНАЙЮ, ОПНАЕК, ОПЮБЮЪ ЙБЮДПЮРМЮЪ ЯЙНАЙЮ). щРН ПЕЦСКЪПМНЕ БШПЮФЕМХЕ ЯННРБЕРЯРБСЕР ЕДХМЯРБЕММНЛС ОПНАЕКС Х МХВЕЛС ДПСЦНЛС (ЯЛ. цКЮБС 4 [пЕЦСКЪПМШЕ БШПЮФЕМХЪ], ЯРП. 23).

хЛЕЕРЯЪ БЮФМЮЪ ПЮГМХЖЮ ЛЕФДС ДБСЛЪ ЯКСВЮЪЛХ: `FS = " "' (НДХМНВМШИ ОПНАЕК) Х `FS = "[ "t"n]+"' (КЕБЮЪ ЙБЮДПЮРМЮЪ ЯЙНАЙЮ, ОПНАЕК, НАПЮРМШИ ЯКЕЬ, "t", НАПЮРМШИ ЯКЕЬ, "n", ОПЮБЮЪ ЙБЮДПЮРМЮЪ ЯЙНАЙЮ, ЯНЯРЮБКЪЧЫХЕ ПЕЦСКЪПМНЕ, БШПЮФЕМХЕ, ЯННРБЕРЯРБСЧЫЕЕ НДМНЛС ХКХ АНКЕЕ ОПНАЕКЮЛ, tab ХКХ newline). дКЪ НАНХУ FS ОНКЪ ПЮГДЕКЪЧРЯЪ ЦПСООЮЛХ ОПНАЕКНБ, tab Х/ХКХ newline. нДМЮЙН, ЕЯКХ ГМЮВЕМХЕ FS ЕЯРЭ " ", awk ЯМЮВЮКЮ САХПЮЕР ХГ ГЮОХЯХ БЕДСЫХЕ Х ГЮБЕПЬЮЧЫХЕ АЕКШЕ ОПНАЕКШ, Ю ГЮРЕЛ ПЕЬЮЕР, ЙЮЙ ПЮЯОНКНФЕМШ ГЮОХЯХ.

мЮОПХЛЕП, РЮЙНИ ЙНМБЕИЕП МЮОЕВЮРЮЕР `b':

$ echo ' a b c d ' -- awk '- print $2 ""'
a b

нДМЮЙН, ЯКЕДСЧЫХИ ЙНМБЕИЕП МЮОЕВЮРЮЕР `a' (ГЮЛЕРЭРЕ ДНОНКМХРЕКЭМШЕ ОПНАЕКШ БНЙПСЦ ЙЮФДНИ АСЙБШ):

$ echo ' a b c d ' -- awk 
	'BEGIN - FS = "[ "t]+" "" ? - print $2 ""'
a a

б ЩРНЛ ЯКСВЮЕ ОЕПБНЕ ОНКЕ ОСЯРН. сДЮКЕМХЕ БЕДСЫХУ ХКХ ГЮБЕПЬЮЧЫХУ АЕКШУ ОПНАЕКНБ ОПНХЯУНДХР ЙЮФДШИ ПЮГ, ЙНЦДЮ ОЕПЕ БШВХЯКЪЕРЯЪ $0.

мЮОПХЛЕП, ПЮЯЯЛНРПХРЕ РЮЙНИ ЙНМБЕИЕП:

$ echo ' a b c d' -- awk '- print; 
$2 = $2; 
print ""'
a a b c d
a a b c d

оЕПБШИ НОЕПЮРНП ОЕВЮРХ ОЕВЮРЮЕР ГЮОХЯЭ ЙЮЙ НМЮ ОПНВХРЮКЮЯЭ, Я МЕРПНМСРШЛ БЕДСЫХЛ АЕКШЛ ОПНАЕКНЛ. оПХЯБЮХБЮМХЕ $2 ОЕПЕЯРПЮХБЮЕР $0 ОНЯПЕДЯРБНЛ ЙНМЙЮРЕМЮЖХХ БЛЕЯРЕ НР $1 ДН $NF, ПЮГДЕКЕММШУ ОНЯПЕДЯРБНЛ ГМЮВЕМХЪ OFS. оНЯЙНКЭЙС БЕДСЫХЕ АЕКШЕ ОПНАЕКШ ХЦМНПХПСЧРЯЪ ОПХ МЮУНФДЕМХХ $1, НМХ МЕ ЯКСФЮР ВЮЯРЭЧ МНБНЦН $0. нЙНМВЮРЕКЭМН, ОНЯКЕДМХИ НОЕПЮРНП ОЕВЮРХ ОЕВЮРЮЕР МНБСЧ $0.

5.5.3 оПЕБПЮЫЕМХЕ ЙЮФДНЦН ЯХЛБНКЮ Б НРДЕКЭМНЕ ОНКЕ

б МЮВЮКН ЯРПЮМХЖШ

аШБЮЧР ЯКСВЮХ, ЙНЦДЮ МСФМН ПЮЯЯЛЮРПХБЮРЭ ЙЮФДШИ ЯХЛБНК ГЮОХЯХ НРДЕКЭМН. б gawk ЩРН ЯДЕКЮРЭ КЕЦЙН, МСФМН ОПНЯРН ОПХЯБНХРЭ FS ОСЯРСЧ ЖЕОНВЙС (""). рНЦДЮ ЙЮФДШИ НРДЕКЭМШИ ЯХЛБНК Б ГЮОХЯХ ЯРЮМЕР НРДЕКЭМШЛ ОНКЕЛ.

бНР ОПХЛЕП:


$ echo a b -- gawk 
'BEGIN - FS = "" "" ? - ? 
for (i = 1; i != NF;
i = i + 1) ? print "Field", i, "is", $i ? ""'
a Field 1 is a
a Field 2 is
a Field 3 is b

рПЮДХЖХНММН ДЕИЯРБХЪ ОПХ FS ПЮБМНЛ "" АШКХ МЕ НОПЕДЕКЕМШ. б РЮЙНЛ ЯКСВЮЕ Unix awk АСДЕР ОПНЯРН ПЮЯЯЛЮРПХБЮРЭ БЯЧ ГЮОХЯЭ ЙЮЙ ХЛЕЧЫСЧ РНКЭЙН НДМН ОНКЕ (d.c.). б ПЕФХЛЕ ЩЛСКЪЖХХ (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161), ЕЯКХ ГМЮВЕМХЕЛ FS ЯКСФХР ОСЯРЮЪ ЖЕОНВЙЮ, РН gawk АСДЕР ДЕИЯРБНБЮРЭ РЮЙ ФЕ.

5.5.4 сЯРЮМНБЙЮ FS ХГ ЙНЛЮМДМНИ ЯРПНЙХ

б МЮВЮКН ЯРПЮМХЖШ

FS ЛНФЕР АШРЭ СЯРЮМНБКЕМЮ ХГ ЙНЛЮМДМНИ ЯРПНЙХ. дКЪ ЩРНЦН МСФМН ХЯОНКЭГНБЮРЭ ОЮПЮЛЕРП `-F'.

 мЮОПХЛЕП,

awk -F, 'program' input-files

СЯРЮМЮБКХБЮЕР Б FS ЯХЛБНК `,'. гЮЛЕРЭРЕ, ВРН ОЮПЮЛЕРПНЛ ЯКСФХР ГЮЦКЮБМНЕ `F'. б НРКХВХЕ НР ЩРНЦН `-f' СЙЮГШБЮЕР, ВРН ТЮИК ЯНДЕПФХР ОПНЦПЮЛЛС awk. пЕЦХЯРП ХЛЕЕР ГМЮВЕМХЕ Б ОЮПЮЛЕРПЮУ ЙНЛЮМДМНИ ЯРПНЙХ: ОЮПЮЛЕРПШ `-F' Х `-f' МЕ ХЛЕЧР МХВЕЦН НАЫЕЦН. хУ ЛНФМН ХЯОНКЭГНБЮРЭ НДМНБПЕЛЕММН ДКЪ СЯРЮМНБЙХ ОЕПЕЛЕММНИ FS Х ОНКСВЕМХЪ awk-ОПНЦПЮЛЛШ ХГ ТЮИКЮ.

гМЮВЕМХЕ, ХЯОНКЭГСЕЛНЕ Б ЙЮВЕЯРБЕ ЮПЦСЛЕМРЮ ДКЪ `-F', НАПЮАЮРШБЮЕРЯЪ РНВМН РЮЙ ФЕ ЙЮЙ ОПХ ОПХЯБЮХБЮМХХ БЯРПНЕММНИ ОЕПЕЛЕММНИ FS. щРН ГМЮВХР, ВРН ЕЯКХ ПЮГДЕКХРЕКЭ ОНКЪ ЯНДЕПФХР ЯОЕЖХЮКЭМШЕ ЯХЛБНКШ, НМХ ДНКФМШ АШРЭ СЙЮГЮМШ ЯННРБЕРЯРБСЧЫХЛХ СОПЮБКЪЧЫХЛХ ОНЯКЕДНБЮРЕКЭМНЯРЪЛХ.

мЮОПХЛЕП, ВРНАШ
ХЯОНКЭГНБЮРЭ  `"' ЙЮЙ ПЮГДЕКХРЕКЭ ОНКЕИ, МСФМН МЮОЕВЮРЮРЭ:

# ВРН-МХАСДЭ РЮЙНЕ ЙЮЙ FS = """" awk -F"""" '...' files ...

оНЯЙНКЭЙС `"' ХЯОНКЭГСЕРЯЪ Б НАНКНВЙЕ ЙЮЙ ЙЮБШВЙЮ, awk СБХДХР `-F""'. рНЦДЮ awk НАПЮАНРЮЕР `""' ЙЮЙ СОПЮБКЪЧЫСЧ ОНЯКЕДНБЮРЕКЭМНЯРЭ (ЯЛ. ПЮГДЕК 4.2 [сОПЮБКЪЧЫХЕ ОНЯКЕДНБЮРЕКЭМНЯРХ], ЯРП. 24), Х ОНКСВХР Б ПЕГСКЭРЮРЕ НДМС `"' Б ЙЮВЕЯРБЕ ПЮГДЕКХРЕКЪ ОНКЕИ.

б ЯОЕЖХЮКЭМНЛ ЯКСВЮЕ, Б ПЕФХЛЕ ЩЛСКЪЖХХ (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161), ЕЯКХ ЮПЦСЛЕМР ОПХ `-F' ЕЯРЭ `t', РН FS ОНКСВХР ГМЮВЕМХЕ ЯХЛБНКЮ tab. щРН ОПНХГНИДЕР ОНРНЛС, ВРН ОПХ ОЕВЮРХ `-F"t' Б НАНКНВЙЕ, АЕГ БЯЪЙХУ ЙЮБШВЕЙ, `"' СДЮКЪЕРЯЪ, РЮЙ ВРН awk ОПЕДОНКНФХР, ВРН МЮ ЯЮЛНЛ ДЕКЕ БШ УНРХРЕ ПЮГДЕКЪРЭ ОНКЪ ЯХЛБНКЮЛХ tab, Ю МЕ `t'. сОНРПЕАКЪИРЕ `-v FS="t"' Б ЙНЛЮМДМНИ ЯРПНЙЕ, ЕЯКХ БШ МЮ ЯЮЛНЛ ДЕКЕ УНРХРЕ НРДЕКЪРЭ ОНКЪ АСЙБНИ `t' (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161).

мЮОПХЛЕП, БНЯОНКЭГСЕЛЯЪ ОПНЦПЮЛЛМШЛ ТЮИКНЛ awk Я ХЛЕМЕЛ `baud.awk', ЙНРНПШИ ЯНДЕПФХР НАПЮГЕЖ /300/ Х ДЕИЯРБХЕ `print $1'. бНР ЩРЮ ОПНЦПЮЛЛЮ:

/300/ - print $1 ""

сЯРЮМНБХЛ РЮЙФЕ Б FS ЯХЛБНК `-' Х ХЯОНКМХЛ ОПНЦПЮЛЛС ДКЪ БУНДМНЦН ТЮИКЮ `BBS-list'. яКЕДСЧЫЮЪ ЙНЛЮМДЮ МЮОЕВЮРЮЕР ЯОХЯНЙ ХЛЕМ ДНЯНЙ НАЗЪБКЕМХИ, ЙНРНПШЕ ПЮАНРЮЧР ЯН ЯЙНПНЯРЭЧ 300 АНД, Х ОЕПБШЕ РПХ ЖХТПШ ХУ РЕКЕТНММШУ МНЛЕПНБ:

$ awk -F- -f baud.awk BBS-list
a aardvark 555
a alpo
a barfly 555...

нАПЮРХРЕ БМХЛЮМХЕ МЮ БРНПСЧ ЯРПНЙС БШБНДЮ. б НПХЦХМЮКЭМНЛ БУНДМНЛ ТЮИКЕ (ЯЛ. ПЮГДЕК 1.3 [тЮИКШ Я ДЮММШЛХ ДКЪ ОПХЛЕПНБ], ЯРП. 7), БРНПЮЪ ЯРПНЙЮ БШЦКЪДХР РЮЙ:

alpo-net 555-3412 2400/1200/300 A

яХЛБНК `-', ВЮЯРЭ ЯХЯРЕЛМНЦН ХЛЕМХ, ХЯОНКЭГНБЮМ ЙЮЙ ПЮГДЕКХРЕКЭ ОНКЕИ БЛЕЯРН `-' Б РЕКЕТНММНЛ МНЛЕПЕ, ЙЮЙ АШКН ГЮДСЛЮМН. щРН ОНЙЮГШБЮЕР, ОНВЕЛС МЮДН АШРЭ НЯРНПНФМШЛ Б БШАНПЕ ОНКЕИ Х ПЮГДЕКХРЕКЕИ ГЮОХЯЕИ. мЮ ЛМНЦХУ ЯХЯРЕЛЮУ Unix ЙЮФДШИ ОНКЭГНБЮРЕКЭ ХЛЕЕР НРДЕКЭМШИ БУНД Б ЯХЯРЕЛМНЛ ТЮИКЕ Я ОЮПНКЪЛХ, НДМС ЯРПНЙС МЮ ОНКЭГНБЮРЕКЪ. хМТНПЛЮЖХЪ Б ЯРПНЙЕ ПЮГДЕКЕМЮ МЮ ВЮЯРХ ДБНЕРНВХЪЛХ. оЕПБНЕ ОНКЕ ЯНДЕПФХР ПЕЦХЯРПЮЖХНММНЕ ХЛЪ ОНКЭГНБЮРЕКЪ, БРНПНЕ ЕЯРЭ ЕЦН ЯЕЙПЕРМШИ ОЮПНКЭ.

яРПНЙЮ ЩРНЦН ТЮИКЮ ЛНФЕР БШЦКЪДЕРЭ ОНДНАМН ЯКЕДСЧЫЕИ:

arnold:xyzzy:2076:10:Arnold Robbins:/home/arnold:/bin/sh

яКЕДСЧЫЮЪ ОПНЦПЮЛЛЮ ОПНЯЛЮРПХБЮЕР ЯХЯРЕЛМШИ ТЮИК Я ОЮПНКЪЛХ Х ОЕВЮРЮЕР БУНДШ ОНКЭГНБЮРЕКЕИ, МЕ ХЛЕЧЫХУ ОЮПНКЪ:

awk -F: '$2 == ""' /etc/passwd

5.5.5 нАГНП ОПЮБХК ПЮГДЕКЕМХЪ МЮ ОНКЪ

б МЮВЮКН ЯРПЮМХЖШ

б ЯННРБЕРЯРБХХ ЯН ЯРЮМДЮПРНЛ POSIX, awk ДНКФЕМ БЕЯРХ ЯЕАЪ РЮЙ, ЙЮЙ АСДРН ЙЮФДЮЪ ГЮОХЯЭ ПЮГДЕКЪЕРЯЪ МЮ ОНКЪ БН БПЕЛЪ ЕЕ ВРЕМХЪ. б ВЮЯРМНЯРХ, ЩРН НГМЮВЮЕР, ВРН ЛНФМН ЛЕМЪРЭ ГМЮВЕМХЕ FS ОНЯКЕ ОПНВРЕМХЪ ГЮОХЯХ, Х ГМЮВЕМХЪ ОНКЕИ (Р.Е., ЙЮЙ НМХ АШКХ БШДЕКЕМШ) ДНКФМШ ЯННРБЕРЯРБНБЮРЭ ЯРЮПНЛС ГМЮВЕМХЧ FS, Ю МЕ МНБНЛС. нДМЮЙН, ЛМНЦХЕ ПЕЮКХГЮЖХХ awk ДЕИЯРБСЧР МЕ РЮЙ. бЛЕЯРН ЩРНЦН НМХ НРЙКЮДШБЮЧР БШДЕКЕМХЕ ОНКЕИ ДН ЯЯШКЙХ МЮ ОНКЕ. оНКЪ БШДЕКЪЧРЯЪ ЯНЦКЮЯМН РЕЙСЫЕЛС ГМЮВЕМХЧ FS! (d.c.) рЮЙНЕ ОНБЕДЕМХЕ ЛНФЕР АШРЭ РПСДМН ДХЮЦМНГХПСЕЛШЛ. яКЕДСЧЫХИ ОПХЛЕП ХККЧЯРПХПСЕР ПЮГМХЖС ЛЕФДС ЩРХЛХ ДБСЛЪ ЛЕРНДЮЛХ. (йНЛЮМДЮ sed ОЕВЮРЮЕР ОЕПБСЧ ЯРПНЙС ХГ `/etc/passwd'. сРХКХРЮ sed ЪБКЪЕРЯЪ "ОНРНВМШЛ ПЕДЮЙРНПНЛ". еЕ ОНБЕДЕМХЕ РЮЙФЕ НОПЕДЕКЪЕРЯЪ ЯРЮМДЮПРНЛ POSIX.)

sed 1q /etc/passwd -- awk '- FS = ":" ; 

print $1 ""'


АСДЕР НАШВМН ОЕВЮРЮРЭ

root on an incorrect implementation of awk

Б РН БПЕЛЪ ЙЮЙ  gawk МЮОЕВЮРЮЕР ВРН-МХАСДЭ БПНДЕ

root:nSijPlPhZZwgE:0:0:Root:/:

б ЯКЕДСЧЫЕИ РЮАКХЖЕ СЙЮГШБЮЕРЯЪ, ЙЮЙ БШДЕКЪЧРЯЪ ОНКЪ МЮ НЯМНБЮМХХ ГМЮВЕМХЪ ОЕПЕЛЕММНИ FS. (`==' НГМЮВЮЕР "ПЮБМН ЯКЕДСЧЫЕЛС.") FS == " " оНКЪ ПЮГДЕКЪЧРЯЪ АЕКШЛХ ОПНАЕКЮЛХ. бЕДСЫХЕ Х ГЮБЕПЬЮЧЫХЕ АЕКШЕ ОПНАЕКШ ХЦМНПХПСЧРЯЪ. щРН ФЕ ДЕКЮЕРЯЪ ОН СЛНКВЮМХЧ.

FS == КЧАНИ ДПСЦНИ НРДЕКЭМШИ ЯХЛБНК. оНКЪ ПЮГДЕКЪЧРЯЪ ЙЮФДШЛ БУНФДЕМХЕЛ ЩРНЦН ЯХЛБНКЮ. йПЮРМШЕ ОНЯКЕДНБЮРЕКЭМШЕ БУНФДЕМХЪ НЦПЮМХВХБЮЧР ОСЯРШЕ ОНКЪ, РЮЙ ФЕ ЙЮЙ БЕДСЫЕЕ Х ГЮБЕПЬЮЧЫЕЕ ГЮОХЯЭ БУНФДЕМХЪ. щРНР ЯХЛБНК ЛНФЕР РЮЙФЕ АШРЭ ЛЕРЮЯХЛБНКНЛ ПЕЦСКЪПМНЦН БШПЮФЕМХЪ; ЕЦН ОПЕДЯРЮБКЕМХЕ МЕ МСФДЮЕРЯЪ Б СОПЮБКЪЧЫЕИ ОНЯКЕДНБЮРЕКЭМНЯРХ.

FS == ПЕЦСКЪПМНЕ БШПЮФЕМХЕ. оНКЪ ПЮГДЕКЪЧРЯЪ БУНФДЕМХЪЛХ ЯХЛБНКНБ, ЙНРНПШЕ ЯННРБЕРЯРБСЧР ПЕЦСКЪПМНЛС БШПЮФЕМХЧ. бЕДСЫЕЕ Х ГЮБЕПЬЮЧЫЕЕ БУНФДЕМХЪ НРДЕКЪЧР ОСЯРШЕ ОНКЪ. FS == "" . йЮФДШИ НРДЕКЭМШИ ЯХЛБНК Б ГЮОХЯХ ЯРЮМНБХРЯЪ НРДЕКЭМШЛ ОНКЕЛ.

б МЮВЮКН ЯРПЮМХЖШ

<<< нЦКЮБКЕМХЕ яРПЮМХЖШ: 5  6 >>>
цКЮБМЮЪ мНБНЯРХ пЕЦХЯРПЮЖХЪ Б ЙКЮЯЯЕ оПНЦПЮЛЛМНЕ НАЕЯОЕВЕМХЕ оЮПЮККЕКЭМШЕ БШВХЯКЕМХЪ дНЙСЛЕМРЮЖХЪ FAQ ОН ЙКЮЯЯС

HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ