Линук програмери следе филозофију стварања малих програма који раде један задатак и то добро. Узмите Линук алате за обраду текста као пример, они су лагани и имају модуларну функционалност. Иако се ови алати за манипулацију текстом разликују по сложености и функционалности, они су корисни у окружењу где графички кориснички интерфејс није доступан.

Чланак покрива најбоље Линук алате за читање датотека и коришћење регуларних израза за обављање операција на изабраном тексту. Такође покрива њихову најосновнију функционалност и примере за боље разумевање.

1. греп

греп је Линук услужни програм за манипулацију текстом који тражи низ знакова или образаца познатих као регуларни изрази у датотеци или тексту. Алат греп припада породици услужних програма који укључују егреп, фгреп и греп, међу којима је фгреп најбржи од свих, док је греп најлакши.

Општа синтакса за коришћење греп-а је следећа:

греп -оптионс стринг име датотеке

На пример, да бисте потражили реч „роот“ у датотеку /етц/пассвд:

греп роот /етц/пассвд

Неки стандардни примери командне линије за почетак су:

Опције Пример Опис
греп -ц ./басхрц Избројите број редова у којима низ постоји
греп -и ./басхрц Извршите претрагу за наведени стринг без обзира на велика и мала слова
греп -о фајл Штампа само подударни низ
греп -л "пассвд" Штампа имена датотека у тренутном директоријуму који одговарају шаблону
греп -н фајл Штампа број реда дуж линије која садржи наведени низ
стринг1|стринг2 греп "стринг1|стринг2" фајл Пронађите и одштампајте више стрингова из датотеке

Слично, можете користити ^ метацхарацтер са командом греп за приказ свих одговарајућих стрингова који почињу одређеним знаковима.

На пример, следећа команда преноси излаз енв команде као улаз у греп и приказује променљиве које почињу са "ХО":

енв | греп ^ХО

Повезан: Практични примери Линук Греп команди

2. авк

авк је моћан језик за скриптовање и алатка за манипулацију текстом на командној линији која може да врши скенирање ред по ред и упоређује редове са шаблонима. Основна синтакса команде авк је радња дефинисана између једног наводника и витичастих заграда праћених именом датотеке.

авк '{ацтион}' име датотеке
авк '{паттерн; ацтион}' име датотеке

Услужни програм претражује датотеку користећи регуларне изразе и извршава функцију дефинисану у параметру акције. авк извршава скрипту у сваком реду ако не поставите образац, као што је приказано у наставку:

авк '{принт $1}' авк_екамплес.ткт

...где $1 приказује прво поље авк_екамплес.ткт фајл.

Следећа команда врши функцију штампања на датом шаблону заменом другог поља "Свет"са"Алице," и приказује цео ред ($0):

ецхо "Хелло Ворлд" | авк '{$2="Алиса"; штампај $0}'

Излаз:

Здраво Алице

Слично, можете користити функцију штампај $0 из горње команде за емулацију греп функционалност.

авк '/јохн/{принт $0}' /етц/пассвд
јохн: к: 1001:1001::/хоме/јохн:/бин/сх

3. врста

сорт је још један Линук услужни програм командне линије који вам помаже да прикажете садржај наведене текстуалне датотеке у сортираном формату. На пример, можете послати излаз команде авк као улаз у услужни програм за сортирање на следећи начин:

авк '{принт $1}' авк_екамплес.ткт | сортирај > сортирај_текст.ткт
мачка сорт_тект.ткт

Излаз:

Повезан: Како сортирати текстуалне датотеке у Линуку користећи сортирање

4. сед

сед или стреам едитор узима унос као низ знакова и врши филтрирање и трансформације текста (брисање, замену и замену) на наведеном тексту.

Можете га користити у скрипти и уређивати датотеке неинтерактивно. Дакле, најосновнија сврха услужног програма је замена низа/карактера. Општа синтакса је:

сед 'с/стринг/субститутион/оптион' фајл

Направите датотеку користећи насумичне реченице да бисте вежбали и разумели рад овог услужног програма.

Заменимо појављивање речи „два" на сваком реду датотеке са "2" помоћу заставицу за глобалну замену, како следи:

сед 'с/тво/2/г' сед_екамплес.ткт > сед_екамплес2.ткт

Слично, користите означите за брисање одређене линије из датотеке:

сед '2д' сед_екамплес.ткт

Такође можете заменити стринг тако што ћете навести број реда (4 с/два/2/стр) и штампа само замењену линију на следећи начин:

сед -н '4 с/два/2/п' сед_екамплес2.ткт

Тхе флаг у горњој команди онемогућава аутоматско штампање улазног тока на излаз. Ову опцију можете користити у своју корист за замену функционалности услужног програма греп са сед.

На пример, можете да измените горњу команду тако што ћете укључити само образац регуларног израза /two/p тако да је -п флаг ће штампати само линије у стандардни излазни ток.

сед -н '/тво/п' сед_екамплес2.ткт

Повезан: Ових 10 сед примера ће вас учинити моћним корисником Линука

5. резати

Цут је још један услужни програм командне линије који сече/извлачи делове текста из реда или датотеке. Он сече текст на основу одређеног поља, карактера или позиције бајта и шаље резултат у стандардни излаз.

Услужни програм користи следећу синтаксу:

резати  фајл

Користити опција да сечете одељак или садржај користећи одређени бајт или опсег бајтова:

цут -б 1 цут_екамплес.ткт

Користити означите за издвајање текста навођењем позиција знакова:

цут -ц 1,3,5 цут_екамплес.ткт

На крају, такође можете издвојити текст тако што ћете навести поља са опција и за размак или граничник поља:

цут -д " " -ф 1 цут_екамплес.ткт

Ево листе опсега са примерима и описима које можете да користите са ликом и бајт Опције:

Домет Пример Опис
н- цут -ц 7- име датотеке Издвој карактер из н-тог целог броја до краја реда
н-м цут -б 7-15 име датотеке Изводи из целог броја н-м сваке линије из улазне датотеке
цут -ц -7 име датотеке Издваја линије које почињу од м до краја реда

Имајте на уму да не можете дефинисати опсеге за издвајање текста помоћу поља опција.

Манипулисање текстом помоћу Линук команди

Линук нуди многе програме и алате за руковање и рад око датотека или текста. Учење свих њих можда неће бити потребно јер можете лако да попуните празнину са другим када добро ухватите један, као што је употреба сед као греп или авк као греп, али то не може бити тачно за сваки алат.

Осим тога, Линук команде имају стрму криву учења, али када једном развијете вештину, могу се показати као веома корисне и ефикасне у животу сваког корисника Линука, посебно администратора система.

8 најбољих терминалских апликација за побољшану Линук продуктивност

Уморни сте од старе и досадне терминалске апликације која долази унапред инсталирана на Линук-у? Погледајте ових осам терминалских апликација које ће побољшати ваш радни ток.

Реад Нект

ОбјавиТвеетЕмаил
Повезане теме
  • Линук
  • Линук команде
О аутору
Румаиса Ниази (Објављено 7 чланака)

Румаиса је слободни писац у МУО. Носила је много шешира, од математичара до ентузијасте информационе безбедности, а сада ради као аналитичар СПЦ. Њена интересовања укључују читање и писање о новим технологијама, дистрибуцијама Линука и било чему око информационе безбедности.

Више од Румаиса Ниази

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили