Оперативни системи засновани на Линук-у нуде многе услужне програме за обраду текста командне линије које можете користити у свакодневној рутини. Команда цут је један такав услужни програм за манипулацију текстом који користи граничнике, бајтове, поља и колоне да би дохватио потребан стринг из базе података равних датотека или линије.
Пошто база података са равним датотекама нема структурни однос и записи су раздвојени уз помоћ граничника, цут је идеалан алат за издвајање знакова или бајтова информација. Овај чланак детаљно говори о команди резања и демонстрира неке практичне примере са различитим опцијама филтера како бисте могли да почнете са алатком.
Преглед команде резања
цут користи следећу основну синтаксу:
резати
Такође можете да га повежете са другим командама на следећи начин:
ецхо “стринг_оф_цхарацтерс” | резати
Имајте на уму да одсуство било које опције генерише грешку. Ево неких заставица које можете користити са резом да бисте позвали његове различите функције:
Опција | Опис |
---|---|
-б | Сече према позицији бајтова |
-ц | Сече према позицији карактера |
-д | Издваја стринг користећи граничник наведен са (-ф) опцијом поља |
-ф | Изводи по одређеном пољу |
-с | Екстракти само за граничнике |
--допуна | Одштампајте излаз осим поља које сте навели |
--оутпут-делимитер | Замените постојећи граничник оним који сте навели |
Ево неколико примера команде за резање које ће вам помоћи да боље разумете алат и његове функције.
1. Издвој одређене знакове из стринга
Користити -б опција за преузимање низова знакова према њиховом броју бајтова, као што следи:
ецхо "Хелло Ворлд" | рез -б 1,2,3,5,8,9
Излаз:
Хелоор
Такође можете да наведете путању датотеке уместо стринга:
цут -б 1,2,3,4,5 име датотеке.ткт
Или можете издвојити знакове према њиховој позицији у тексту. Користити -ц опција праћена редоследом/редоследом знакова које треба да преузмете на следећи начин:
ецхо "Хелло Ворлд" | рез -ц 1,2,3,5,6,8,10,11
Излаз:
Здраво стари
Слично томе, да бисте преузели поља или колоне из базе података са равним датотекама, користите команду цут са -ф опција заставице:
цут -ф 3 база података.ткт
2. Изрежите опсег бајтова или знакова
Такође можете користити -б означите са командом цут да бисте издвојили и одштампали више опсега бајтова на следећи начин:
цут -б 1-7,16-23 база података.ткт
Можете дефинисати опсег за преузимање знакова користећи -ц означити на следећи начин:
цут -ц 1-7,16-23 база података.ткт
3. Издвој текст са почетне или крајње позиције
Користити -цн- опција за издвајање текста од н-тог знака па надаље до краја реда, где н је индекс знака у низу.
На пример, да бисте издвојили стринг почев од шестог знака до краја реда:
цут -ц6- датабасе.ткт
Или користите следећу команду за преузимање од почетка до последњег м знакови из датотеке:
цут -ц-8 база података.ткт
4. Изрежите више поља из датотеке
Такође можете одштампати више поља из датотеке користећи -ф застава.
цут -ф 1,2 база података.ткт
Излаз:
ИМЕ ГОДИНА
Јован 20
Лиза 24
Џек 18
Брус 23
Ненси 19
5. Издвојите текст помоћу разграничења
Можете користити -д заставицу да бисте навели граничник са -ф опција. Означивач одређује знак који се користи за раздвајање поља у текстуалној датотеци.
На пример, да бисте издвојили прву колону /etc/passwd датотеку, користите двотачку (:) као граничник:
цут -д ‘:’ -ф 1 /етц/пассвд
Слично томе, вредност граничника у датом низу текста је један размак:
ецхо "1% од 1%" | пресеци -д ' ' -ф 2,3
Излаз:
1% од
6. Промените излазни граничник за екран
Тхе --оутпут-делимитер флаг додаје флексибилност излазу команде резања. На пример, можете користити заставицу да прикажете излаз у посебном реду користећи $’\н’ (нови ред) вредност, како следи:
греп алице /етц/пассвд | цут -д ':' -ф 1,5,7 --оутпут-делимитер=$'\н'
Излаз:
алице
Алице
/bin/sh
Штавише, такође можете заменити граничник улазне датотеке граничником по свом избору у излазу користећи --оутпут-делимитер застава:
греп роот /етц/пассвд | цут -д ':' -ф 1,6,7 --оутпут-делимитер=@
Излаз:
роот@/роот@/бин/басх
нм-опенвпн@/вар/либ/опенвпн/цхроот@/уср/сбин/нологин
7. Исеците поља само када линија садржи граничник
Користити -с означите за издвајање поља само када линије садрже граничник. На пример, следећа команда неће преузети поље -ф 1 осим ако нема граничник размака:
ецхо "ХеллоВорлд" | цут -д " " -ф 1 -с
Напротив, доле поменута команда ће генерисати излаз пошто стринг садржи наведени граничник:
ецхо "Хелло Ворлд" | цут -д " " -ф 1 -с
Излаз:
Здраво
Слично томе, можете користити било који други знак као граничник:
ецхо "Хелло: Ворлд" | цут -д ":" -ф 2 -с
Излаз:
Свет
8. Допуните командни излаз
Услужни програм Цут вам такође омогућава да одштампате сва поља осим наведеног поља. Користити --допуна опција на следећи начин да преузмете све детаље о роот корисничком налогу осим пете колоне:
греп "роот" /етц/пассвд | цут -д ':' --цомплемент -с -ф 5
Излаз:
роот: к: 0:0:/роот:/бин/басх
Слично, у примеру испод, -ф 1 параметар мора да се прикаже Здраво текста међутим, због --допуна опцију, штампа само остатак.
ехо "Здраво целом свету" | цут -д " " -ф 1 --допуна
Излаз:
целом Свету
Најбољи део је што можете комбиновати команду цут са стандардним излазом других Линук/Уник команди.
сед је један такав алат за уређивање текста који можете користити за брисање, уметање и замену текста. Његов излаз можете лако пренети на команду за резање.
У примеру испод, команду греп излаз се прослеђује услужном програму сед који замењује двотачку (:) цртицом (-), а затим цут приказује поља 1, 6 и 7 на следећи начин:
греп алице /етц/пассвд | сед 'с/:/-/г' | исећи -д ' ' -ф 1,5,7
Излаз:
алице-к-1005-1008-Алице-/хоме/нев/алице-/бин/сх
Рад са текстом на Линук-у помоћу цут
Команда цут је флексибилан и ефикасан услужни програм командне линије који можете користити у различитим случајевима употребе манипулације текстом. Користи операције за филтрирање текста из датотека или стандардних улазних података. Услужни програм такође има предност у томе што корисницима омогућава да ограниче текст који желе да прикажу и додају граничнике по сопственом избору.
Међутим, ова команда такође има нека ограничења. Не можете да користите регуларне изразе да бисте навели граничник или да користите истовремене опције команди вишеструког резања. Овај чланак је покрио основне практичне примере овог услужног програма како би помогао почетницима да јасно разумеју команде за манипулацију текстом на Линук-у.
Желите да унапредите своју Линук игру и сазнате више о манипулацији текстом? Ево пет најбољих Линук алата командне линије за почетак вашег путовања.
Реад Нект
- Линук
- Линук команде
- Линук Елементари
- Линук Басх Схелл
Румаиса је слободни писац у МУО. Носила је много шешира, од математичара до ентузијасте информационе безбедности, а сада ради као аналитичар СПЦ. Њена интересовања укључују читање и писање о новим технологијама, дистрибуцијама Линука и било чему око информационе безбедности.
Претплатите се на наш билтен
Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!
Кликните овде да бисте се претплатили