У овом чланку ћемо вам показати да покренете унапред тражење низова помоћу Грепа са регуларним изразом давањем 10 практичних примера његових примена. Многи примери размотрени у овом чланку имају практичне импликације, што значи да их можете користити у свакодневном програмирању Линука. Следећи узорци описују неке примере регуларних израза за најчешће тражене обрасце.
Пример 1: Пронађите једног закупца у текстуалној датотеци
Да бисте у датотеци „књига“ избацили редове који садрже знак „$“, откуцајте:
$ греп '\ $' књигаПример 2: Пронађите појединачни низ у текстуалној датотеци
За излаз редова у датотеци „књига“ која садржи низ „14 УСД“.99 ', тип:
$ греп '\ $ 14 \.99 'књигаПример 3: Пронађите једног посебног закупца у текстуалној датотеци
Да бисте у датотеци „књига“ избацили редове који садрже знак „\“, откуцајте:
$ греп '\\' књигаПример 4: Поклапање линија које почињу са одређеним текстом
Користите 'ˆ' у регуларном изразу да бисте означили почетак реда.
Унесите све редове у '/ уср / дицт / вордс' који почињу са 'про', унесите:
$ греп 'ˆпро' / уср / дицт / вордсДа бисте избацили све редове у датотеци „књига“ који почињу текстом „на почетку“, без обзира на велика и мала слова, унесите:
$ греп -и 'у почетку' књигаБЕЛЕШКА: Ови регуларни изрази цитирани су знаковима '; то је зато што се неке љуске иначе понашају према знаку „ˆ“ као према посебном „метазнаку“
Поред претраживања речи и фраза, греп можете користити и за претрагу сложених текстуалних образаца који се називају регуларни изрази. Регуларни израз - или „регуларни израз“ - је текстуални низ посебних знакова који наводи а комплет образаца који се подударају.
Технички гледано, обрасци речи или фразе су регуларни изрази - само врло једноставни. У регуларном изразу, већина знакова - укључујући слова и бројеве - представља себе. На пример, образац регуларног израза 1 одговара низу '1' и обрасцу дечко подудара се са низом „дечак“.
Постоји низ резервисаних знакова који се називају метазнакови и који се не представљају у регуларном изразу, али имају посебно значење које се користи за изградњу сложених образаца. Ови мета карактери су следећи: ., *, [, ], ˆ, $ и \. Добро је напоменути да су такви мета карактери уобичајени међу готово свим уобичајеним и посебним Линук дистрибуцијама. Ево доброг чланка који покрива посебна значења метазнака и даје примере њихове употребе.
Пример 5: Поклапање линија које се завршавају са одређеним текстом
Користите „$“ као последњи знак цитираног текста да бисте се поклапали с тим текстом на крају реда. Да бисте у датотеци извели редове који се завршавају знаком ускличника, унесите:
$ греп '!$ 'идеПример 6: Подударање линија одређене дужине
Да бисте подударали линије одређене дужине, користите тај број '.'знакови између' ˆ 'и' $ '- на пример, да бисте се подударали са свим линијама које су широке два знака (или колоне), користите' ˆ ... $ 'као регуларни израз за претрагу.
Унесите све редове у '/ уср / дицт / вордс' који су тачно три знака, укуцајте:
$ греп 'ˆ… $' / уср / дицт / вордсЗа дуже линије корисније је користити другу конструкцију: 'ˆ.\ број \ $ ', где је број одговарајући број линија. Користите ',' да одредите опсег бројева.
Унесите све редове у '/ уср / дицт / вордс' који имају тачно дванаест знакова, унесите:
$ греп 'ˆ.\ 12 \ $ '/ уср / дицт / вордсДа бисте исписали све редове у '/ уср / дицт / вордс' који су широки двадесет два или више знакова, унесите:
$ греп 'ˆ.\ 22, \ $ '/ уср / дицт / вордсПример 7: Подударање линија које садрже било који регуларни израз
Да бисте подударали линије које садрже било који од одређеног броја регуларних израза, наведите сваки од регуларних израза који ће се тражити између оператора наизменичног рада ('\ |') као регуларни израз за претрагу. Редови који садрже било који од датих регуларних израза ће се приказати.
Да бисте избацили све редове у „плаибои“ који садрже или обрасце „књига“ или „колач“, унесите:
$ греп 'тхе боок \ | цаке' плаибоиПример 8: Подударање линија које садрже све неке регуларне изразе
За излаз линије које се подударају све бројних регуларних израза, користите греп за излазне линије које садрже први регуларни израз који желите да подударате и преусмјерите излаз у греп с другим регуларним изразом као аргументом. Наставите да додајете цеви за греп претраге за све регуларне изразе које желите да тражите.
Да бисте избацили све редове у „плејлисту“ која садржи и обрасце „обала“ и „небо“, без обзира на случај, унесите:
$ греп -и 'тхе схоре' плејлиста | греп -и небоПример 9: Подударање линија које садрже само одређене знакове
За подударање линија које садрже само одређене знакове, користите регуларни израз 'ˆ [знакови] * $', где се знакови подударају. Да бисте у '/ уср / дицт / вордс' избацили редове који садрже само самогласнике, унесите:
$ греп -и 'ˆ [аеиоу] * $' / уср / дицт / вордсОпција '-и' одговара знаковима без обзира на велика и мала слова; тако да се у овом примеру сви знакови самогласника подударају без обзира на падеж.
Пример 10: Проналажење фраза без обзира на размак
Један од начина претраживања фразе која би се могла појавити са додатним размацима између речи или преко реда или прелома странице је уклањање свих додатака линија и додатних размака из уноса, а затим греп то. Да бисте то урадили, ставите улаз на тр са "\ р \ н: \> \ | -" као аргумент опцији '-д' (уклањање свих прелома линија са улаза); цев до фмт филтера са опцијом '-у' (излаз текста са равномерним размаком); и цев за греп са шаблоном за тражењем.
Да бисте претражили низ прелома редова за низ „истовремено са„ у датотеци „документи“, унесите:
$ цат доцс | тр -д '\ р \ н: \> \ |-'| фмт -у | греп 'истовремено са'
Резиме
У овом чланку смо прегледали 10 практичних примера употребе наредбе Греп Линук за претраживање и проналажење низова у текстуалној датотеци. Успут смо научили како да користимо регуларне изразе заједно са Грепом за спровођење сложених претрага текстуалних датотека. До сада сте имали бољу идеју о томе колико су моћне функције претраживања Линук-а.
Ево додатних ресурса за оне који су заинтересовани да сазнају више о Линук програмирању:
Ресурси за системске администраторе
- Водич за администраторе Линук система - Шта је Линук оперативни систем и како он функционише
- Водич за администраторе Линук система - Преглед Линук виртуелне меморије и кеш меморије диска
- Водич за администраторе Линук система - Најбоље праксе за надгледање Линук система
- Водич за администраторе Линук система - Најбоље праксе за извођење Линук покретања и искључења
- Водич за администраторе Линук система - Најбоље праксе за прављење и управљање резервним операцијама
Ресурси за Линук Кернел програмера
- Како функционише управљање оперативним системом Линук оперативног система
- Свеобухватан преглед процеса оперативног система Линук кернел
- Који су механизми који стоје иза управљања задацима Линук кернела
Речник Линук система датотека
Свеобухватан преглед рада Линук система датотека и директорија