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