пСЙНБНДЯРБН ОНКЭГНБЮРЕКЪ ДКЪ GNU Awk
11. лЮЯЯХБШ Б awk
лЮЯЯХБ ОПЕДЯРЮБКЪЕР РЮАКХЖС ГМЮВЕМХИ, МЮГШБЮЕЛШУ ЩКЕЛЕМРЮЛХ. щКЕЛЕМРШ ЛЮЯЯХБЮ ПЮГКХВЮЧРЯЪ ЯБНХЛХ ХМДЕЙЯЮЛХ. хМДЕЙЯШ ЛНЦСР АШРЭ ВХЯКЮЛХ ХКХ ЖЕОНВЙЮЛХ. awk ОНДДЕПФХБЮЕР НДМН ЛМНФЕЯРБН ХЛЕМ, ЙНРНПШЕ ЛНЦСР ХЯОНКЭГНБЮРЭЯЪ ДКЪ ХЛЕМНБЮМХЪ ОЕПЕЛЕММШУ, ЛЮЯЯХБНБ Х ТСМЙЖХИ (ЯЛ. ЦКЮБС 13 [тСМЙЖХХ, НОПЕДЕКЕММШЕ ОНКЭГНБЮРЕКЕЛ], ЯРП. 153). рЮЙХЛ НАПЮГНЛ, МЕКЭГЪ ХЛЕРЭ ОЕПЕЛЕММСЧ Х ЛЮЯЯХБ Я РЕЛ ФЕ ХЛЕМЕЛ Б НДМНИ awk-ОПНЦПЮЛЛЕ. 11.1 бБЕДЕМХЕ Б ЛЮЯЯХБШъГШЙ awk НАЕЯОЕВХБЮЕР НДМНПЮГЛЕПМШЕ ЛЮЯЯХБШ ДКЪ УПЮМЕМХЪ ЦПСОО ЖЕОНВЕЙ ХКХ ВХЯЕК. йЮФДШИ ЛЮЯЯХБ awk ДНКФЕМ ХЛЕРЭ ХЛЪ. хЛЕМЮ ЛЮЯЯХБНБ ХЛЕЧР РНР ФЕ ЯХМРЮЙЯХЯ, ВРН Х ХЛЕМЮ ОЕПЕЛЕММШУ; ЙЮФДНЕ ОПЮБХКЭМНЕ ХЛЪ ОЕПЕЛЕММНИ ЛНФЕР АШРЭ РЮЙФЕ ОПЮБХКЭМШЛ ХЛЕМЕЛ ЛЮЯЯХБЮ. мН МЕКЭГЪ НДМН Х РН ФЕ ХЛЪ ХЯОНКЭГНБЮРЭ НАНХЛХ ЯОНЯНАЮЛХ (ЙЮЙ ЛЮЯЯХБ Х ЙЮЙ ОЕПЕЛЕММСЧ) Б НДМНИ awk-ОПНЦПЮЛЛЕ. лЮЯЯХБШ Б awk ОНБЕПУМНЯРМН ЯУНДМШ Я ЛЮЯЯХБЮЛХ Б ДПСЦХУ ЪГШЙЮУ; МН ХЛЕЧРЯЪ Х ТСМДЮЛЕМРЮКЭМШЕ НРКХВХЪ. б awk МЕ МСФМН СЙЮГШБЮРЭ ПЮГЛЕП ЛЮЯЯХБЮ ОЕПЕД МЮВЮКНЛ ЕЦН ХЯОНКЭГНБЮМХЪ. йПНЛЕ РНЦН, КЧАНЕ ВХЯКН ХКХ ЖЕОНВЙЮ ЛНЦСР ХЯОНКЭГНБЮРЭЯЪ ЙЮЙ ХМДЕЙЯ ЛЮЯЯХБЮ, Ю МЕ РНКЭЙН ОНЯКЕДНБЮРЕКЭМШЕ ЖЕКШЕ. б АНКЭЬХМЯРБЕ ДПСЦХУ ЪГШЙНБ МСФМН НАЗЪБКЪРЭ ЛЮЯЯХБ Х СЙЮГШБЮРЭ, ЯЙНКЭЙН ЩКЕЛЕМРНБ, ХКХ ЙНЛОНМЕМР, НМ ЯНДЕПФХР. б РЮЙХУ ЪГШЙЮУ НАЗЪБКЕМХЕ НРБНДХР МЕОПЕПШБМШИ АКНЙ ОЮЛЪРХ ДКЪ СЙЮГЮММНЦН ЙНКХВЕЯРБЮ ЩКЕЛЕМРНБ. хМДЕЙЯ Б ЛЮЯЯХБЕ НАШВМН НАЪГЮМ АШРЭ ОНКНФХРЕКЭМШЛ ЖЕКШЛ; МЮОПХЛЕП, ХМДЕЙЯ МНКЭ СЙЮГШБЮЕР ОЕПБШИ ЩКЕЛЕМР ЛЮЯЯХБЮ, ЙНРНПШИ ТЮЙРХВЕЯЙХ УПЮМХРЯЪ Б МЮВЮКЕ АКНЙЮ ОЮЛЪРХ. хМДЕЙЯ НДХМ СЙЮГШБЮЕР БРНПНИ ЩКЕЛЕМР, ЙНРНПШИ ПЮЯОНКЮЦЮЕРЯЪ Б ОЮЛЪРХ ЯПЮГС ОНЯКЕ ОЕПБНЦН ЩКЕЛЕМРЮ, Х Р.Д. мЕБНГЛНФМН ДНАЮБХРЭ АНКЭЬЕ ЩКЕЛЕМРНБ Й ЛЮЯЯХБС, ОНРНЛС ВРН НМ ХЛЕЕР ЛЕЯРН РНКЭЙН ДКЪ НАЗЪБКЕММНЦН ЙНКХВЕЯРБЮ ЩКЕЛЕМРНБ. (мЕЙНРНПШЕ ЪГШЙХ ДНОСЯЙЮЧР ОПНХГБНКЭМШЕ МЮВЮКЭМШЕ Х ЙНМЕВМШЕ ХМДЕЙЯШ, МЮОПХЛЕП, `15 .. 27', МН ПЮГЛЕП ЛЮЯЯХБЮ БЯЕ ПЮБМН ТХЙЯХПНБЮМ ОПХ ЕЦН НАЗЪБКЕМХХ.) мЕОПЕПШБМШИ ЛЮЯЯХБ Я ВЕРШПЭЛЪ ЩКЕЛЕМРЮЛХ: БНЯЕЛЭ, "foo", "" Х 30: ЛНФЕР БШЦКЪДЕРЭ РЮЙ: 8 "foo" "" 30 ГМЮВЕМХЪ 0 1 2 3 ХМДЕЙЯШ уПЮМЪРЯЪ Б ОЮЛЪРХ РНКЭЙН ГМЮВЕМХЪ; ХМДЕЙЯШ МЕЪБМН ГЮБХЯЪР НР ОНПЪДЙЮ ГМЮВЕМХИ. БНЯЕЛЭ ЕЯРЭ ГМЮВЕМХЕ Я ХМДЕЙЯНЛ МНКЭ, ОНРНЛС ВРН БНЯЕЛЭ ОНЪБКЪЕРЯЪ Б ОНГХЖХХ Я МСКЕЛ ЩКЕЛЕМРНБ ОЕПЕД МХЛ. лЮЯЯХБШ Б awk МЕ РЮЙХЕ: НМХ ЮЯЯНЖХЮРХБМШ. щРН ГМЮВХР, ВРН ЙЮФДШИ ЛЮЯЯХБ ЕЯРЭ ЯНАПЮМХЕ ОЮП: ХМДЕЙЯ Х ЯННРБЕРЯРБСЧЫХИ ЕЛС ЩКЕЛЕМР-ГМЮВЕМХЕ: щКЕЛЕМР 4 гМЮВЕМХЕ 30 щКЕЛЕМР 2 гМЮВЕМХЕ "foo" щКЕЛЕМР 1 гМЮВЕМХЕ 8 щКЕЛЕМР 3 гМЮВЕМХЕ "" лШ ОЕПЕВХЯКХКХ ОЮПШ Б ЯКСВЮИМНЛ ОНПЪДЙЕ, ОНРНЛС ВРН ХУ ОНПЪДНЙ АЕГПЮГКХВЕМ. нДМН ХГ ОПЕХЛСЫЕЯРБ ЮЯЯНЖХЮРХБМШУ ЛЮЯЯХБНБ ЯНЯРНХР Б РНЛ, ВРН МНБШЕ ОЮПШ ЛНФМН ДНАЮБКЪРЭ Б КЧАНИ ЛНЛЕМР. мЮОПХЛЕП, ОПЕДОНКНФХЛ, ВРН ЛШ ДНАЮБКЪЕЛ Й ОПЕДШДСЫЕЛС ЛЮЯЯХБС ДЕЯЪРШИ ЩКЕЛЕМР ЯН ГМЮВЕМХЕЛ "number ten". пЕГСКЭРЮР ОНКСВХРЯЪ РЮЙНИ: щКЕЛЕМР 10 гМЮВЕМХЕ "number ten" щКЕЛЕМР 4 гМЮВЕМХЕ 30 щКЕЛЕМР 2 гМЮВЕМХЕ "foo" щКЕЛЕМР 1 гМЮВЕМХЕ 8 щКЕЛЕМР 3 гМЮВЕМХЕ "".щРНР ЛЮЯЯХБ ПЮГПЕФЕМ, РЮЙ ЙЮЙ МЕЙНРНПШЕ ХМДЕЙЯШ ОПНОСЫЕМШ: ХЛЕЧРЯЪ ЩКЕЛЕМРШ 1-4 Х 10, МН МЕР ЩКЕЛЕМРНБ 5, 6, 7, 8 Х 9. дПСЦНЕ ЯКЕДЯРБХЕ ЮЯЯНЖХЮРХБМНЯРХ ЛЮЯЯХБНБ ЕЯРЭ РН, ВРН ХМДЕЙЯШ МЕ НАЪГЮМШ АШРЭ ОНКНФХРЕКЭМШЛХ ЖЕКШЛХ. кЧАНЕ ВХЯКН ХКХ ДЮФЕ ЖЕОНВЙЮ ЛНФЕР АШРЭ ХМДЕЙЯНЛ. мЮОПХЛЕП, БНР ЛЮЯЯХБ, ЙНРНПШИ ОЕПЕБНДХР ЯКНБЮ Я ЮМЦКХИЯЙНЦН МЮ ТПЮМЖСГЯЙХИ ЪГШЙ: щКЕЛЕМР "dog" гМЮВЕМХЕ "chien" щКЕЛЕМР "cat" гМЮВЕМХЕ "chat" щКЕЛЕМР "one" ГМЮВЕМХЕ "un" щКЕЛЕМР 1 гМЮВЕМХЕ "un"гДЕЯЭ ЛШ ПЕЬХКХ ОЕПЕБНДХРЭ ВХЯКН НДХМ ЯПЮГС Х Б ОПНХГМНЯХЛНИ Х Б ВХЯКНБНИ ТНПЛЕ, ХККЧЯРПХПСЪ РНР ТЮЙР, ВРН НДХМ ЛЮЯЯХБ ЛНФЕР ХЛЕРЭ Х ВХЯКЮ Х ЖЕОНВЙХ Б ЙЮВЕЯРБЕ ХМДЕЙЯНБ. (мН ТЮЙРХВЕЯЙХ ХМДЕЙЯШ ЛЮЯЯХБНБ БЯЕЦДЮ ЖЕОНВЙХ; щРН Б ДЕРЮКЪУ НАЯСФДЮЕРЯЪ Б ПЮГДЕКЕ 11.7 [хЯОНКЭГНБЮМХЕ ВХЯЕК ДКЪ ХМДЕЙЯНБ Б ЛЮЯЯХБЮУ], ЯРП. 129.) гМЮВЕМХЕ IGNORECASE МХЙЮЙ МЕ ЯБЪГЮМН Я ХМДЕЙЯЮЖХЕИ ЛЮЯЯХБНБ. мСФМН СОНРПЕАКЪРЭ РНВМН РЕ ФЕ ЯЮЛШЕ ЯРПНЙНБШЕ ГМЮВЕМХЪ ДКЪ БШАНПЙХ ЩКЕЛЕМРНБ ХГ ЛЮЯЯХБЮ, ЙНРНПШЕ ХЯОНКЭГНБЮКХЯЭ ОПХ ЕЦН ГЮОХЯХ Б ЛЮЯЯХБ. йНЦДЮ awk ЯНГДЮЕР ДКЪ БЮЯ ЛЮЯЯХБ, МЮОПХЛЕП, Я ОНЛНЫЭЧ БЯРПНЕММНИ ТСМЙЖХХ split, ХМДЕЙЯЮЛХ ЩРНЦН ЛЮЯЯХБЮ ЯРЮМНБЪРЯЪ ОНЯКЕДНБЮРЕКЭМШЕ ЖЕКШЕ, МЮВХМЮЪ Я ЕДХМХЖШ. (яЛ. ПЮГДЕК 12.3 [бЯРПНЕММШЕ ТСМЙЖХХ ДКЪ ДЕИЯРБХИ Я ЖЕОНВЙЮЛХ], ЯРП. 137.) 11.2 яЯШКЙХ МЮ ЩКЕЛЕМР ЛЮЯЯХБЮнЯМНБМНИ ОСРЭ ХЯОНКЭГНБЮМХЪ ЛЮЯЯХБНБ ЯНЯРНХР Б ЯЯШКЙЕ МЮ ХУ НРДЕКЭМШЕ ЩКЕЛЕМРШ. яЯШКЙЮ МЮ ЛЮЯЯХБ ЕЯРЭ БШПЮФЕМХЕ ТНПЛШ: array[index]гДЕЯЭ array НГМЮВЮЕР ХЛЪ ЛЮЯЯХБЮ. бШПЮФЕМХЕ index ЕЯРЭ ХМДЕЙЯ ЩКЕЛЕМРЮ ЛЮЯЯХБЮ, МЮ ЙНРНПШИ БШ ЯЯШКЮЕРЕЯЭ. гМЮВЕМХЕ ЯЯШКЙХ МЮ ЛЮЯЯХБ ЕЯРЭ РЕЙСЫЕЕ ГМЮВЕМХЕ ЯННРБЕРЯРБСЧЫЕЦН ЩКЕЛЕМРЮ. мЮОПХЛЕП, foo[4.3] ЕЯРЭ БШПЮФЕМХЕ ДКЪ ЩКЕЛЕМРЮ ЛЮЯЯХБЮ foo Я ХМДЕЙЯНЛ `4.3'. яЯШКЙЮ МЮ ЩКЕЛЕМР ЛЮЯЯХБЮ, ГМЮВЕМХЕ ЙНРНПНЛС ЕЫЕ МЕ ОПХЯБНЕМН, ХЛЕЕР ОСЯРНЕ ГМЮВЕМХЕ "". щРН НРМНЯХРЯЪ РЮЙФЕ Й ЩКЕЛЕМРЮЛ, ЙНРНПШЕ АШКХ БШВЕПЙМСРШ (ЯЛ. ПЮГДЕК 11.6 [нОЕПЮРНП delete], ЯРП. 128). рЮЙЮЪ ЯЯШКЙЮ ЮБРНЛЮРХВЕЯЙХ ЯНГДЮЕР ЩРНР ЩКЕЛЕМР ЯН ГМЮВЕМХЕЛ ОСЯРНИ ЖЕОНВЙХ. (б МЕЙНРНПШУ ЯКСВЮЪУ ЩРН ОКНУН, ОНРНЛС ВРН ГПЪ ГЮМХЛЮЕРЯЪ ОЮЛЪРЭ БМСРПХ awk.) бШ ЛНФЕРЕ НОПЕДЕКХРЭ, ЯСЫЕЯРБСЕР КХ ЩКЕЛЕМР ЛЮЯЯХБЮ Я МЕЙНРНПШЛ ХМДЕЙЯНЛ, ХЯОНКЭГСЪ БШПЮФЕМХЕ: index in array. щРН БШПЮФЕМХЕ ОПНБЕПЪЕР, ЯСЫЕЯРБСЕР ХКХ МЕР СЙЮГЮММШИ ХМДЕЙЯ, АЕГ ОНАНВМНЦН ЩТТЕЙРЮ ЯНГДЮМХЪ ЩКЕЛЕМРЮ, ЕЯКХ ЕЦН МЕ АШКН. щРН БШПЮФЕМХЕ ХЛЕЕР ГМЮВЕМХЕ НДХМ (true) ЕЯКХ array[index] ЯСЫЕЯРБСЕР, Х МНКЭ (false), ЕЯКХ НМ МЕ ЯСЫЕЯРБСЕР. мЮОПХЛЕП, ВРНАШ ОПНБЕПХРЭ, ЯНДЕПФХР КХ ЛЮЯЯХБ frequencies ХМДЕЙЯ `2', ЛНФМН МЮОХЯЮРЭ РЮЙНИ НОЕПЮРНП: if (2 in frequencies) print "Subscript 2 is present." гЮЛЕРЭРЕ, ВРН ЩРН МЕ ЕЯРЭ РЕЯР МЮ РН, ЯНДЕПФХР КХ ЛЮЯЯХБ frequencies ЩКЕЛЕМР ЯН ГМЮВЕМХЕЛ ДБЮ. (вРНАШ СЯРЮМНБХРЭ ЩРН, МЕР ДПСЦНЦН ОСРХ ЙПНЛЕ ОПНЯЛНРПЮ БЯЕУ ЕЦН ЩКЕЛЕМРНБ.) хРЮЙ, ЩРН БШПЮФЕМХЕ МЕ ЯНГДЮЕР frequencies[2], Б РН БПЕЛЪ ЙЮЙ ЯКЕДСЧЫЮЪ (МЕОПЮБХКЭМЮЪ) ЮКЭРЕПМЮРХБЮ ЕЦН ЯНГДЮЕР: if (frequencies[2] != "") print "Subscript 2 is present." 11.3 оПХЯБЮХБЮМХЪ ЩКЕЛЕМРЮЛ ЛЮЯЯХБЮщКЕЛЕМРШ ЛЮЯЯХБЮ ЕЯРЭ lvalues: ХЛ ЛНФМН ОПХЯБЮХБЮРЭ ГМЮВЕМХЪ РЮЙ ФЕ ЙЮЙ ОЕПЕЛЕММШЛ awk: array[subscript] = value. гДЕЯЭ array НГМЮВЮЕР ХЛЪ ЛЮЯЯХБЮ. бШПЮФЕМХЕ subscript ЕЯРЭ ХМДЕЙЯ ЩКЕЛЕМРЮ ЛЮЯЯХБЮ, ЙНРНПНЛС БШ УНРХРЕ ОПХЯБНХРЭ ГМЮВЕМХЕ. бШПЮФЕМХЕ value НОПЕДЕКЪЕР ГМЮВЕМХЕ, ЙНРНПНЕ ОПХЯБЮХБЮЕРЯЪ ЩКЕЛЕМРС ЛЮЯЯХБЮ. 11.4 оПХЛЕПШ НЯМНБМШУ ЛЮЯЯХБНБяКЕДСЧЫЮЪ ОПНЦПЮЛЛЮ АЕПЕР ЯОХЯНЙ ЯРПНЙ, ЙЮФДЮЪ ЯРПНЙЮ МЮВХМЮЕРЯЪ Я МНЛЕПЮ ЯРПНЙХ, Х ГЮРЕЛ ОЕВЮРЮЕР ХУ Б ОНПЪДЙЕ МНЛЕПНБ ЯРПНЙ. щРХ МНЛЕПЮ ПЮЯОКНФЕМШ МЕ ОНДПЪД ОПХ ВРЕМХХ, НМХ ОЕПЕЛЕЬЮМШ. оПНЦПЮЛЛЮ ЯНПРХПСЕР ГЮОХЯХ, ТНПЛХПСЪ ЛЮЯЯХБ, ХЯОНКЭГСЧЫХИ МНЛЕПЮ ЯРПНЙ ЙЮЙ ХМДЕЙЯШ. гЮРЕЛ ОЕВЮРЮЕР ЯРПНЙХ Б ОНПЪДЙЕ ХУ МНЛЕПНБ. щРН НВЕМЭ ОПНЯРЮЪ ОПНЦПЮЛЛЮ. нМЮ ЯАХБЮЕРЯЪ, ЕЯКХ БЯРПЕВЮЕР ОНБРНПЪЧЫХЕЯЪ МНЛЕПЮ, ОПНОСЯЙХ ХКХ ЯРПНЙХ, ЙНРНПШЕ МЕ МЮВХМЮЧРЯЪ Я МНЛЕПНБ. - if ($1 ? max) max = $1 arr[$1] = $0 "" END - for (x = 1; x != max; x++) print arr[x] "" оЕПБНЕ ОПЮБХКН ЯКЕДХР ГЮ МЮХАНКЭЬХЛ ХГ ОПНВРЕММШУ МНЛЕПНБ ЯРПНЙ; НМН РЮЙФЕ ГЮОНЛХМЮЕР БЯЕ ЯРПНЙХ Б ЛЮЯЯХБЕ arr Я ХМДЕЙЯЮЛХ, ПЮБМШЛХ МНЛЕПЮЛ ЯРПНЙ. бРНПНЕ ОПЮБХКН ХЯОНКМЪЕРЯЪ ОНЯКЕ НЙНМВЮМХЪ ББНДЮ. нМН ОЕВЮРЮЕР БЯЕ ЯРПНЙХ. еЯКХ ЩРН ОПНЦПЮЛЛЮ ХЯОНКМЪЕРЯЪ ЯН ЯКЕДСЧЫХЛ ББНДНЛ: 5 I am the Five man 2 Who are you? The new number two! 4 . . . And four on the floor 1 Who is number one? 3 I three you. БШУНД АСДЕР РЮЙХЛ: 1 Who is number one? 2 Who are you? The new number two! 3 I three you. 4 . . . And four on the floor 5 I am the Five man еЯКХ МНЛЕП ЯРПНЙХ ОНБРНПЪЕРЯЪ, РН ОНЯКЕДМЪЪ ЯРПНЙЮ Я ЩРХЛ МНЛЕПНЛ ОЕПЕЙПНЕР НЯРЮКЭМШЕ. оПНОСЯЙХ Б МНЛЕПЮУ АСДСР НАПЮАЮРШБЮРЭЯЪ, ЕЯКХ ЯКЕЦЙЮ СЯНБЕПЬЕМЯРБНБЮРЭ ОПЮБХКН END ОПНЦПЮЛЛШ: END - for (x = 1; x != max; x++) if (x in arr) print arr[x] "" 11.5 оЕПЕАНП БЯЕУ ЩКЕЛЕМРНБ ЛЮЯЯХБЮб ОПНЦПЮЛЛЮУ, ЙНРНПШЕ ХЯОНКЭГСЧР ЛЮЯЯХБШ, ВЮЯРН МСФМШ ЖХЙКШ, ЙНРНПШЕ НАПЮЫЮЧРЯЪ НДХМ ПЮГ Й ЙЮФДНЛС ЩКЕЛЕМРС ЛЮЯЯХБЮ. б ДПСЦХУ ЪГШЙЮУ, ЦДЕ ЛЮЯЯХБШ МЕОПЕПШБМШ Ю ХМДЕЙЯШ --- ОНКНФХРЕКЭМШЕ ЖЕКШЕ ВХЯКЮ, ЩРН ОПНЯРН: ЛНФМН МЮИРХ БЯЕ ХМДЕЙЯШ ЯВЕРНЛ НР МЮХЛЕМЭЬЕЦН ДН МЮХАНКЭЬЕЦН. щРЮ РЕУМХЙЮ МЕ ПЮАНРЮЕР Б awk, ОНЯЙНКЭЙС КЧАШЕ МНЛЕПЮ ХКХ ЖЕОНВЙХ ЛНЦСР АШРЭ ХМДЕЙЯЮЛХ. оНЩРНЛС awk ХЛЕЕР ЯОЕЖХЮКЭМШИ НОЕПЮРНП for ДКЪ ОПНЯЛНРПЮ ЛЮЯЯХБЮ: for (var in array) body щРНР ЖХЙК БШОНКМЪЕР body НДХМ ПЮГ ДКЪ ЙЮФДНЦН ХМДЕЙЯЮ Б ЛЮЯЯХБЕ, ЙНРНПШИ БЮЬЮ ОПНЦПЮЛЛЮ ПЮМЕЕ ХЯОНКЭГНБЮКЮ, Я ОЕПЕЛЕММНИ var Б ЙЮВЕЯРБЕ НВЕПЕДМНЦН ХМДЕЙЯЮ. оПХБЕДЕЛ ОПНЦПЮЛЛС, ОНКЭГСЧЫСЧЯЪ ЩРНИ ТНПЛНИ НОЕПЮРНПЮ for. оЕПБНЕ ОПЮБХКН ОЕПЕАХПЮЕР БУНДМШЕ ГЮОХЯХ Х НРЛЕВЮЕР, ЙЮЙХЕ ЯКНБЮ ОНЪБХКХЯЭ БН ББНДЕ ( ОН ЙПЮИМЕИ ЛЕПЕ НДХМ ПЮГ), ОНЛЕЫЮЪ ХУ Б ЛЮЯЯХБ ЯН ЯКНБЮЛХ Б ЙЮВЕЯРБЕ ХМДЕЙЯНБ. бРНПНЕ ОПЮБХКН ОПНЯЛЮРПХБЮЕР БЯЕ МЮИДЕММШЕ ЩКЕЛЕМРШ ЛЮЯЯХБЮ used, ХЯОНКЭГНБЮММШЕ ДКЪ МЮУНФДЕМХЪ БЯЕУ НРДЕКЭМШУ ЯКНБ БН ББНДЕ. нМН ОЕВЮРЮЕР ЙЮФДНЕ ЯКНБН ДКХММЕЕ 10 ЯХЛБНКНБ Х ЙНКХВЕЯРБН РЮЙХУ ЯКНБ. яЛ. ПЮГДЕК 12.3 [бЯРПНЕММШЕ ТСМЙЖХХ ДКЪ ДЕИЯРБХИ Я ЖЕОНВЙЮЛХ], ЯРП. 137, ДКЪ ЯБЕДЕМХИ Н БЯРПНЕММНИ ТСМЙЖХХ length. # гЮОХЯШБЮЕЛ 1 ДКЪ ЙЮФДНЦН ЯКНБЮ, БЯРПЕРХБЬЕЦНЯЪ УНРЪ АШ НДХМ ПЮГ - for (i = 1; i != NF; i++) used[$i] = 1 "" # мЮУНДХЛ ЙНКХВЕЯРБН НРДЕКЭМШУ ЯКНБ ДКХММЕЕ 10 ЯХЛБНКНБ. END - for (x in used) if (length(x) ? 10) - ++num.long.words print x "" print num.long.words, "ЯКНБ ДКХММЕЕ ВЕЛ& 10 ЯХЛБНКНБ" "" яЛ. ПЮГДЕК 16.2.5 [цЕМЕПХПНБЮМХЕ ЯВЕРВХЙНБ, ХЯОНКЭГСЧЫХУ ЯКНБЮ], page 235, ЯНДЕПФЮЫХИ АНКЕЕ ОНДПНАМШИ ОПХЛЕП РЮЙНЦН БХДЮ. оНПЪДНЙ, Б ЙНРНПНЛ ОЕПЕАХПЮЧРЯЪ ЩКЕЛЕМРШ ЛЮЯЯХБЮ Б РЮЙХУ ЖХЙКЮУ, НОПЕДЕКЪЕРЯЪ БМСРПЕММЕИ НПЦЮМХГЮЖХЕИ ЛЮЯЯХБНБ Х МЕ ЛНФЕР СОПЮБКЪРЭЯЪ ХКХ ХГЛЕМЪРЭЯЪ. еЯКХ МНБШЕ ЩКЕЛЕМРШ ДНАЮБКЪРЭ Б ЛЮЯЯХБ НОЕПЮРНПЮЛХ Б РЕКЕ РЮЙНЦН ЖХЙКЮ, ЩРН ЛНФЕР ОПХБЕЯРХ Й НЬХАЙЮЛ; МЕКЭГЪ АШРЭ СБЕПЕММШЛ Б РНЛ, ВРН НОЕПЮРНП ЖХЙКЮ МЮИДЕР ХУ. рНВМН РЮЙ ФЕ, ХГЛЕМЕМХЕ var БМСРПХ ЖХЙКЮ ЛНФЕР ДЮРЭ МЕОПЕДБХДЕММШЕ ПЕГСКЭРЮРШ. мЕНАУНДХЛН ХГАЕЦЮРЭ РЮЙХУ ДЕИЯРБХИ. 11.6 нОЕПЮРНП delete (БШВЕПЙХБЮМХЕ)лНФМН СДЮКЪРЭ НРДЕКЭМШЕ ЩКЕЛЕМРШ ЛЮЯЯХБЮ, ХЯОНКЭГСЪ НОЕПЮРНП delete: delete array[index]. еЯКХ БШ БШВЕПЙМСКХ ЩКЕЛЕМР ЛЮЯЯХБЮ, БШ МЕ ЛНФЕРЕ АНКЭЬЕ СГМЮРЭ ГМЮВЕМХЕ, ЙНРНПНЕ ЩРНР ЩКЕЛЕМР ХЛЕК. дЕКН НАЯРНХР РЮЙ, ЙЮЙ АСДРН МЮ МЕЦН МХЙНЦДЮ МЕ ЯЯШКЮКХЯЭ Х МЕ ОПХЯБЮХБЮКХ МХЙЮЙНЦН ГМЮВЕМХЪ. бНР ОПХЛЕП БШВЕПЙХБЮМХЪ ЩКЕЛЕМРНБ ЛЮЯЯХБЮ: for (i in frequencies) delete frequencies[i] б ЩРНЛ ОПХЛЕПЕ СДЮКЪЧРЯЪ БЯЕ ЩКЕЛЕМРШ ЛЮЯЯХБЮ frequencies. еЯКХ СДЮКЕМ ЙЮЙНИ МХАСДЭ ЩКЕЛЕМР, РН МХЙЮЙНИ НОЕПЮРНП for ОПНЯЛНРПЮ ЛЮЯЯХБЮ МЕ НАМЮПСФХР ЩРНР ЩКЕЛЕМР Х БШДЮЯР МНКЭ (Р.e. false): delete foo[4] if (4 in foo) print "щРН МХЙНЦДЮ МЕ АСДЕР МЮОЕВЮРЮМН" бЮФМН ГЮЛЕРХРЭ, ВРН БШВЕПЙМСРЭ ЩКЕЛЕМР ЕЯРЭ МЕ РН ФЕ ЯЮЛНЕ, ВРН ОПХЯБНХРЭ ЕЛС ОСЯРНЕ ГМЮВЕМХЕ (ОСЯРСЧ ЖЕОНВЙС ""): foo[4] = "" if (4 in foo) print "щРН АСДЕР МЮОЕВЮРЮМН, УНРЪ foo[4] РЕОЕПЭ ОСЯРН" бШВЕПЙХБЮМХЕ МЕЯСЫЕЯРБСЧЫЕЦН ЩКЕЛЕМРЮ МЕ ЯВХРЮЕРЯЪ НЬХАЙНИ. лНФМН БШВЕПЙМСРЭ БЯЕ ЩКЕЛЕМРШ ЛЮЯЯХБЮ НДМХЛ НОЕПЮРНПНЛ, САПЮБ ХМДЕЙЯ Б НОЕПЮРНПЕ delete: delete array . щРЮ БНГЛНФМНЯРЭ ЕЯРЭ ПЮЯЬХПЕМХЕ gawk; НМЮ МЕ ДНЯРСОМЮ Б ПЕФХЛЕ ЯНБЛЕЯРХЛНЯРХ (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП.161). щРЮ БЕПЯХЪ НОЕПЮРНПЮ delete ОНВРХ Б РПХ ПЮГЮ ЩТТЕЙРХБМЕЕ, ВЕЛ БШВЕПЙХБЮМХЕ ОН НДМНЛС ЩКЕЛЕМРС ГЮ ПЮГ. яКЕДСЧЫХИ НОЕПЮРНП ОПЕДЯРЮБКЪЕР ОЕПЕМНЯХЛШИ, МН МЕ НВЕБХДМШИ ЯОНЯНА НВХЯРЙХ ЛЮЯЯХБЮ. # ЯОЮЯХАН to Michael Brennan ГЮ СЙЮГЮМХЕ ЩРНЦН ЯОНЯНАЮ split("", array) тСМЙЖХЪ split (ЯЛ. ПЮГДЕК 12.3 [бЯРПНЕММШЕ ТСМЙЖХХ ДКЪ ДЕИЯРБХИ Я ЖЕОНВЙЮЛХ], ЯРП. 137) ЯМЮВЮКЮ НВХЫЮЕР СЙЮГЮММШИ ЛЮЯЯХБ. щРНР БШГНБ ОПНЯХР ЕЕ ПЮГДЕКХРЭ ОСЯРСЧ ЯРПНЙС. оНЯЙНКЭЙС МЕР ДЮММШУ ДКЪ ПЮГДЕКЕМХЪ, ТСМЙЖХЪ РНКЭЙН НВХЫЮЕР ЛЮЯЯХБ. бмхлюмхе: бШВЕПЙХБЮМХЕ ЛЮЯЯХБЮ МЕ ЛЕМЪЕР ЕЦН РХО; МЕКЭГЪ БШВЕПЙМСРЭ ЛЮЯЯХБ Х ГЮРЕЛ ХЯОНКЭГНБЮРЭ ЕЦН ХЛЪ ЙЮЙ ЯЙЮКЪП. мЮОПХЛЕП, РЮЙНЕ МЕ ЯПЮАНРЮЕР: a[1] = 3; delete a; a = 311.7 сОНРПЕАКЕМХЕ ВХЯЕК ДКЪ ХМДЕЙЯЮЖХХ ЛЮЯЯХБНБбЮФМН ОНЛМХРЭ, ВРН ХМДЕЙЯШ ЛЮЯЯХБНБ БЯЕЦДЮ ЖЕОНВЙХ. еЯКХ Б ЙЮВЕЯРБЕ ХМДЕЙЯНБ ХЯОНКЭГСЧРЯЪ ВХЯКНБШЕ ГМЮВЕМХЪ, НМХ ОПЕБПЮЫЮЧРЯЪ Б ЖЕОНВЙХ ОЕПЕД ХЯОНКЭГНБЮМХЕЛ ДКЪ ХМДЕЙЯХПНБЮМХЪ (ЯЛ. ПЮГДЕК 7.4 [йНМБЕПЯХХ ЖЕОНВЕЙ Х ВХЯЕК], ЯРП. 81). щРН ГМЮВХР, ВРН ГМЮВЕМХЕ БЯРПНЕММНИ ОЕПЕЛЕММНИ CONVFMT ЛНФЕР ОНРЕМЖХЮКЭМН БНГДЕИЯРБНБЮРЭ МЮ ОПНЖЕЯЯ ДНЯРСОЮ БЮЬЕИ ОПНЦПЮЛЛШ Й ЩКЕЛЕМРЮЛ ЛЮЯЯХБНБ. МЮОПХЛЕП: xyz = 12.153 data[xyz] = 1 CONVFMT = "%2.2f" if (xyz in data) printf "%s is in data"n", xyz else printf "%s is not in data"n", xyz аСДЕР МЮОЕВЮРЮМН `12.15 is not in data'. оЕПБШИ НОЕПЮРНП ДЮЕР xyz ВХЯКЕММНЕ ГМЮВЕМХЕ. оПХЯБЮХБЮМХЕ data[xyz] ХМДЕЙЯХПСЕР data ЯРПНЙНБШЛ ГМЮВЕМХЕЛ "12.153" (ОН СЛНКВЮМХЧ ХЯОНКЭГСЕРЯЪ ДКЪ ЙНМБЕПЯХХ ГМЮВЕМХЕ CONVFMT, "%.6g"), Х ОПХЯБЮХБЮЕР ЕДХМХЖС ЩКЕЛЕМРС data["12.153"]. гЮРЕЛ ОПНЦПЮЛЛЮ ЛЕМЪЕР ГМЮВЕМХЕ CONVFMT. рЕЯР `(xyz in data)' ЦЕМЕПХПСЕР МНБНЕ ЯРПНЙНБНЕ ГМЮВЕМХЕ ХГ xyz, МЮ ЩРНР ПЮГ "12.15", ОНЯЙНКЭЙС ГМЮВЕМХЕ CONVFMT ДНОСЯЙЮЕР РНКЭЙН ДБЕ ГМЮВЮЫХУ ЖХТПШ. рЕЯР БШДЮЕР false, ОНЯЙНКЭЙС "12.15" ЕЯРЭ ЖЕОНВЙЮ, НРКХВМЮЪ НР "12.153". б ЯННРБЕРЯРБХХ Я ОПЮБХКЮЛХ ЙНМБЕПЯХХ (ЯЛ. ПЮГДЕК 7.4 [ЙНМБЕПЯХХ ЖЕОНВЕЙ Х ВХЯЕК], ЯРП. 81), ЖЕКШЕ ВХЯКЮ БЯЕЦДЮ ЙНМБЕПРХПСЧРЯЪ Б ЖЕОНВЙХ ЙЮЙ ЖЕКШЕ, МЕГЮБХЯХЛН НР ГМЮВЕМХЪ CONVFMT. рЮЙ, НОЕПЮРНП: for (i = 1; i != maxsub; i++) do something with array[i] АСДЕР ПЮАНРЮРЭ МЕГЮБХЯХЛН НР ГМЮВЕМХЪ CONVFMT. аНКЭЬХМЯРБН ЙНМЯРПСЙЖХИ Б awk Б АНКЭЬХМЯРБЕ ЯКСВЮЕБ ПЮАНРЮЧР РЮЙ, ЙЮЙ БШ НР МХУ НФХДЮЕРЕ. мН ОНКЕГМН ХЛЕРЭ РНВМНЕ ОПЕДЯРЮБКЕМХЕ НА ХУ ОПЮБХКЮУ, ОНЯЙНКЭЙС ХМНЦДЮ НМХ ХГЛЕМЪЧР ЩТТЕЙР БЮЬЕИ ОПНЦПЮЛЛШ. 11.8 хЯОНКЭГНБЮМХЕ МЕХМХЖХЮКХГХПНБЮММШУ ОЕПЕЛЕММШУ Б ЙЮВЕЯРБЕ ХМДЕЙЯНБоПЕДОНКНФХЛ, ВРН МСФМН МЮОЕВЮРЮРЭ БУНДМШЕ ДЮММШЕ Б НАПЮРМНЛ ОНПЪДЙЕ. рЮЙЮЪ ОПНЦПЮЛЛЮ (Я МЕЙНРНПШЛХ РЕЯРНБШЛХ ДЮММШЛХ) ЛНФЕР БШЦКЪДЕРЭ РЮЙ: $ echo 'line 1 ? line 2 ? line 3' -- awk '- l[lines] = $0; ++lines "" ? END - ? for (i = lines-1; i ?= 0; --i) ? print l[i] ? ""' a line 3 a line 2 й МЕЯВЮЯРЭЧ, ЯЮЛЮЪ ОЕПБЮЪ ЯРПНЙЮ ББНДЮ МЕ ОНЪБХРЯЪ МЮ БШУНДЕ! мЮ ОЕПБШИ БГЦКЪД ОПНЦПЮЛЛЮ ДНКФМЮ ПЮАНРЮРЭ. оЕПЕЛЕММЮЪ lines МЕ ХМХЖХЮКХГХПНБЮМЮ, Ю МЕХМХЖХЮКХГХПНБЮММЮЪ ХЛЕЕР ВХЯКЕММНЕ ГМЮВЕМХЕ МНКЭ. йЮФЕРЯЪ, ГМЮВЕМХЕ l[0] ДНКФМН АШРЭ МЮОЕВЮРЮМН. мН ХМДЕЙЯШ Б ЛЮЯЯХБЮУ awk БЯЕЦДЮ ЯРПНЙНБШЕ ГМЮВЕМХЪ. х МЕХМХЖХЮКХГХПНБЮММШЕ ОЕПЕЛЕММШЕ, ХЯОНКЭГСЕЛШЕ ЙЮЙ ЖЕОНВЙХ, ХЛЕЧР ГМЮВЕМХЪ "", МЕ МСКХ. рЮЙХЛ НАПЮГНЛ `line 1' УПЮМХРЯЪ Б l[""]. яКЕДСЧЫЮЪ БЕПЯХЪ ОПНЦПЮЛЛШ ПЮАНРЮЕР ОПЮБХКЭМН: - l[lines++] = $0 "" END - for (i = lines - 1; i ?= 0; --i) print l[i] "" гДЕЯЭ `++' ГЮЯРЮБКЪЕР lines АШРЭ ВХЯКНЛ, ДЕКЮЪ "ЯРЮПНЕ ГМЮВЕМХЕ" ВХЯКНЛ МНКЭ, ЙНРНПНЕ ГЮРЕЛ ЙНМБЕПРХПСЕРЯЪ Б "0" ЙЮЙ ХМДЕЙЯ ЛЮЯЯХБЮ. йЮЙ ЛШ РНКЭЙН ВРН БХДЕКХ, УНРЪ ЩРН МЕЯЙНКЭЙН МЕНАШВМН, ОСЯРЮЪ ЖЕОНВЙЮ ("") ЕЯРЭ ДЕИЯРБСЧЫХИ ХМДЕЙЯ ЛЮЯЯХБЮ (d.c.). еЯКХ `--lint' БШДЮМН Б ЙНЛЮМДМНИ ЯРПНЙЕ (ЯЛ. ПЮГДЕК 14.1 [оЮПЮЛЕРПШ ЙНЛЮМДМНИ ЯРПНЙХ], ЯРП. 161), gawk АСДЕР ОПЕДСОПЕФДЮРЭ НА ХЯОНКЭГНБЮМХХ ОСЯРНИ ЯРПНЙХ Б ЙЮВЕЯРБЕ ХМДЕЙЯЮ. 11.9 лМНЦНЛЕПМШЕ ЛЮЯЯХБШлМНЦНЛЕПМШИ ЛЮЯЯХБ --- РЮЙНИ ЛЮЯЯХБ, Б ЙНРНПНЛ ЩКЕЛЕМР СЙЮГШБЮЕРЯЪ ОНЯКЕДНБЮРЕКЭМНЯРЭЧ ХМДЕЙЯНБ, Ю МЕ НДМХЛ ХМДЕЙЯНЛ. мЮОПХЛЕП, ДБСЛЕПМШИ ЛЮЯЯХБ РПЕАСЕР ДБЮ ХМДЕЙЯЮ. нАШВМШИ ЯОНЯНА (Б АНКЭЬХМЯРБЕ ЪГШЙНБ, БЙКЧВЮЪ awk) ЯЯШКЮРЭЯЪ МЮ ЩКЕЛЕМР ДБСЛЕПМНЦН ЛЮЯЯХБЮ Я ХЛЕМЕЛ grid ЕЯРЭ grid[x,y]. лМНЦНЛЕПМШЕ ЛЮЯЯХБШ Б awk ОНДДЕПФХБЮЧРЯЪ ЙНМЙЮРЕМЮЖХЕИ ХМДЕЙЯНБ Б НДМС ЖЕОНВЙС. рНВМЕЕ, awk ЙНМБЕПРХПСЕР ХМДЕЙЯШ Б ЖЕОНВЙХ (ЯЛ. ПЮГДЕК 7.4 [йНМБЕПЯХЪ ЖЕОНВЕЙ Х ВХЯЕК], ЯРП. 81) Х ЯЖЕОКЪЕР ХУ БЛЕЯРЕ Я ПЮГДЕКХРЕКЪЛХ ЛЕФДС МХЛХ. щРН ЯНГДЮЕР НДМС ЖЕОНВЙС, ЙНРНПЮЪ НОХЯШБЮЕР ГМЮВЕМХЪ БЯЕУ ХМДЕЙЯНБ. йНЛАХМХПНБЮММЮЪ ЖЕОНВЙЮ ХЯОНКЭГСЕРЯЪ ЙЮЙ НДХМ ХМДЕЙЯ Б НАШВМНЛ НДМНЛЕПМНЛ ЛЮЯЯХБЕ. б ЙЮВЕЯРБЕ ЯЕОЮПЮРНПЮ ХЯОНКЭГСЕРЯЪ ГМЮВЕМХЕ ОЕПЕЛЕММНИ SUBSEP. мЮОПХЛЕП, ОПЕДОНКНФХЛ, ВРН БШВХЯКЪЕЛ БШПЮФЕМХЕ `foo[5,12] = "value"' ОПХ ГМЮВЕМХХ SUBSEP ПЮБМНЛ "@". мНЛЕПЮ ОЪРЭ Х 12 ЙНМБЕПРХПСЧРЯЪ Б ЯРПНЙХ Х ЯНЕДХМЪЧРЯЪ Я `@' ЛЕФДС МХЛХ, ВРН ОПХБНДХР Й "5@12"; РЮЙХЛ НАПЮГНЛ, ЩКЕЛЕМРС foo["5@12"] ОПХЯБЮХБЮЕРЯЪ Б ЙЮВЕЯРБЕ ГМЮВЕМХЪ "value". йНЦДЮ ГЮОНЛХМЮЕРЯЪ ЩКЕЛЕМР ЛЮЯЯХБЮ, ДКЪ awk АЕГПЮГКХВМН, АШК КХ НМ Я НДМХЛ ХМДЕЙЯНЛ ХКХ Я ОНЯКЕДНБЮРЕКЭМНЯРЭЧ ХМДЕЙЯНБ. дБЮ БШПЮФЕМХЪ `foo[5,12]' Х `foo[5 SUBSEP 12]' БЯЕЦДЮ ЩЙБХБЮКЕМРМШ. оН СЛНКВЮМХЧ ГМЮВЕМХЕЛ SUBSEP ЯКСФХР ЖЕОНВЙЮ ""034", ЙНРНПЮЪ ЯНДЕПФХР МЕОЕВЮРМШИ ЯХЛБНК, ОНЪБКЕМХЕ ЙНРНПНЦН ЛЮКНБЕПНЪРМН Б awk-ОПНЦПЮЛЛЕ ХКХ БН БУНДМШУ ДЮММШУ. оНКЭГЮ БШАНПЮ ЛЮКНБЕПНЪРМШУ ЯХЛБНКНБ ОПНХЯРЕЙЮЕР ХГ ТЮЙРЮ, ВРН ГМЮВЕМХЪ ХМДЕЙЯЮ, ЯНДЕПФЮЫЕЦН ЖЕОНВЙС, ЯННРБЕРЯРБСЧЫСЧ SUBSEP, ХМНЦДЮ ОПХБНДЪР Й ЙНЛАХМХПНБЮММШЛ ЖЕОНВЙЮЛ МЕ БГЮХЛМН НДМНГМЮВМН. оПЕДОНКНФХЛ, ВРН SUBSEP АШКЮ АШ "@"; РНЦДЮ `foo["a@b", "c"]' Х `foo["a", "b@c"]' АШКХ АШ МЕПЮГКХВХЛШЛХ, РЮЙ ЙЮЙ НАЮ ГЮОНЛМЪРЯЪ ЙЮЙ `foo["a@b@c"]'. лНФМН ОПНБЕПХРЭ, ХЛЕЕРЯЪ КХ НОПЕДЕКЕММЮЪ ХМДЕЙЯМЮЪ ОНЯКЕДНБЮРЕКЭМНЯРЭ Б "ЛМНЦНЛЕПМНЛ" ЛЮЯЯХБЕ Я ОНЛНЫЭЧ РНЦН ФЕ ЯЮЛНЦН НОЕПЮРНПЮ `in', ХЯОНКЭГСЕЛНЦН ДКЪ НДМНЛЕПМШУ ЛЮЯЯХБНБ. бЛЕЯРН ЕДХМЯРБЕММНЦН ХМДЕЙЯЮ Б ОНГХЖХХ КЕБНЦН НОЕПЮМДЮ МСФМН ОХЯЮРЭ БЯЧ ОНЯКЕДНБЮРЕКЭМНЯРЭ ХМДЕЙЯНБ, ПЮГДЕКЕММШУ ГЮОЪРШЛХ Х ГЮЙКЧВЕММСЧ Б ЯЙНАЙХ: (subscript1, subscript2, ...) in array. яКЕДСЧЫХИ ОПХЛЕП РПЮЙРСЕР ЯБНИ ББНД ЙЮЙ ДБСЛЕПМШИ ЛЮЯЯХБ ОНКЕИ; НО ОНБНПЮВХБЮЕР ЩРНР ЛЮЯЯХБ МЮ 90 ЦПЮДСЯНБ ОН ВЮЯНБНИ ЯРПЕКЙЕ Х ОЕВЮРЮЕР ПЕГСКЭРЮР. оПЕДОНКЮЦЮЕРЯЪ, ВРН БЯЕ ЯРПНЙХ ХЛЕЧР НДХМЮЙНБНЕ ЙНКХВЕЯРБН ЩКЕЛЕМРНБ. awk '- if (max.nf ! NF) max.nf = NF max.nr = NR for (x = 1; x != NF; x++) vector[x, NR] = $x "" END - for (x = 1; x != max.nf; x++) - for (y = max.nr; y ?= 1; --y) printf("%s ", vector[x, y]) printf(""n") "" ""' еЯКХ ГЮДЮМ ББНД: 1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3 РН ОПНЦПЮЛЛЮ БШДЮЯР: 4 3 2 1 5 4 3 2 6 5 4 3 1 6 5 4 2 1 6 5 3 2 1 6 11.10 оПНЯЛНРП ЛМНЦНЛЕПМШУ ЛЮЯЯХБНБмЕ ХЛЕЕРЯЪ ЯОЕЖХЮКЭМНЦН НОЕПЮРНПЮ for ДКЪ ОПНЯЛНРПЮ "ЛМНЦНЛЕПМШУ" ЛЮЯЯХБНБ; ХУ Х МЕ ЛНЦКН АШРЭ, ОНРНЛС ВРН МЮ ЯЮЛНЛ ДЕКЕ ЛМНЦНЛЕПМШУ ЛЮЯЯХБНБ ХКХ ЩКЕЛЕМРНБ МЕР; ЕЯРЭ РНКЭЙН ЛМНЦНЛЕПМШИ ОСРЭ ДНЯРСОЮ Й ЩКЕЛЕМРЮЛ ЛЮЯЯХБЮ. нДМЮЙН, ЕЯКХ БЮЬЮ ОПНЦПЮЛЛЮ ХЛЕЕР ЛЮЯЯХБ, ДНЯРСО Й ЙНРНПНЛС БЯЕЦДЮ ЛМНЦНЛЕПМШИ, БШ ЛНФЕРЕ ДНЯРХВЭ ЩТТЕЙРЮ Б ЕЦН ЯЙЮМХПНБЮМХХ, ЙНЛАХМХПСЪ ЯЙЮМХПСЧЫХИ НОЕПЮРНП for (ЯЛ. ПЮГДЕК 11.5 [яЙЮМХПНБЮМХЕ БЯЕУ ЩКЕЛЕМРНБ ЛЮЯЯХБЮ], ЯРП. 127) Я БЯРПНЕММНИ ТСМЙЖХЕИ split (ЯЛ. ПЮГДЕК 12.3 [бЯРПНЕММШЕ ТСМЙЖХХ ДКЪ ДЕИЯРБХИ Я ЖЕОНВЙЮЛХ], ЯРП. 137). щРН БШЦКЪДХР ОНДНАМН ЯКЕДСЧЫЕЛС ОПХЛЕПС: for (combined in array) - split(combined, separate, SUBSEP) ... "" гДЕЯЭ combined СЯРЮМЮБКХБЮЕРЯЪ МЮ ЙЮФДШИ ЙНЛАХМХПНБЮММШИ ХМДЕЙЯ ЛЮЯЯХБЮ Х ПЮЯЫЕОКЪЕРЯЪ МЮ ХМДХБХДСЮКЭМШЕ ХМДЕЙЯШ, НОПЕДЕКЪЕЛШЕ БУНФДЕМХЪЛХ ГМЮВЕМХИ SUBSEP. пЮЯЫЕОКЕММШЕ ХМДЕЙЯШ ЯРЮМНБЪРЯЪ НРДЕКЭМШЛХ ХМДЕЙЯЮЛХ ХГЛЕПЕМХИ ЩКЕЛЕМРЮ ЛЮЯЯХБЮ array. рЮЙ, ОПЕДОНКНФХЛ ВРН ОПХЯБЮХБЮКХ ГМЮВЕМХЕ ЩКЕЛЕМРС ЛЮЯЯХБЮ array[1, "foo"]; РНЦДЮ Б ЛЮЯЯХБЕ ЕЯРЭ ЩКЕЛЕМР Я ХМДЕЙЯНЛ "1"034foo". (бЯОНЛМХЛ, ВРН ГМЮВЕМХЕ ОН СЛНКВЮМХЧ ОЕПЕЛЕММНИ SUBSEP ЕЯРЭ ЯХЛБНК Я ЙНДНЛ 034.) пЮМЭЬЕ ХКХ ОНГФЕ, МН НОЕПЮРНП for МЮИДЕР ЩРНР ХМДЕЙЯ Х БШОНКМХР ХРЕПЮЖХЧ Я combined ПЮБМШЛ "1"034foo". рНЦДЮ ТСМЙЖХЪ split, БШГНБЕРЯЪ Я ОЮПЮЛЕРПЮЛХ: split("1"034foo", separate, ""034"). б ПЕГСКЭРЮРЕ ЩРНЦН separate[1] ОНКСВЮЕР ГМЮВЕМХЕ "1", Ю separate[2] ОНКСВЮЕР ГМЮВЕМХЕ "foo". рЕЛ ЯЮЛШЛ БНЯЯРЮМЮБКХБЮЕРЯЪ НПХЦХМЮКЭМЮЪ ОНЯКЕДНБЮРЕКЭМНЯРЭ ХМДЕЙЯНБ. |
<<< | нЦКЮБКЕМХЕ | яРПЮМХЖШ: 11 12 | >>> |