Bash Премахване на последните x знаци от низ

Bash Remove Last X Characters From String



Понякога може да се наложи да изтриете букви от всеки низ. Какъвто и да е случаят, Linux включва няколко вградени, полезни инструмента за премахване на букви от такъв текст в Bash. Тази статия демонстрира как да изтриете букви от всеки низ, използвайки тези методи. В този пост инструкциите се изпълняват на Ubuntu 20.04 Focal Fossa. Същите инструкции могат да се изпълняват на всяка Linux система, на която са инсталирани посочените по -горе помощни програми. За да изпълним инструкциите, ще използваме обичайния терминал. Прекият клавиш Ctrl+Alt+T ще отвори терминалния инструмент.

Метод 01: Начин на подниза

Първият ни метод за премахване на букви или знаци от низ е по -скоро като създаване на подниза от оригинална. Междувременно терминалът вече е отворен; ще направим bash файл, за да добавим нашия bash код. За да можем да направим премахване на знаци или създаване на поднизи в него. И така, ние използвахме вградената инструкция за докосване в нашата черупка, за да създадем bash файл.









Тъй като файлът е бързо генериран в началната папка на Ubuntu 20.04, отворете го в някой редактор, за да редактирате. И така, ние избираме GNU редактор, за да отворим файла file.sh, както е показано по -долу.







Копирайте показания по -долу код в него. Този код съдържа разширение bash в началото и след това декларирахме низова променлива val със стойност на низ. На другия ред използваме ехо фразата, за да покажем тази променлива в терминала. Истинската задача започва от тук. Инициализирахме променлива new и й присвояваме стойност, която е подниза на оригиналната променлива val. Направихме го, като споменахме -14 в скобите след двойни двоеточия. Това казва на компилатора, че трябва да премахне последните 14 букви от оригиналния низ FirstWorldCountries. Останалите букви ще бъдат записани в променливата new. В последния ред ехото е използвано за отпечатване на новата променлива new.



Правилното изпълнение на файл file.sh с помощта на командата bash излиза както се очаква. Първо, той показва стойността на първата низова променлива val, а след това показва стойността на новосъздадения низ от първа променлива според показания изход.

Метод 02: Използване на специални символи

Друг прост и по -лесен метод за премахване на последните букви или знаци от който и да е низ е чрез специалните символи или знаци, например символи за процент и въпросителен знак. Така че този път ще използваме процент и въпросителен знак, за да премахнем знаците от всеки низ. Следователно, вече сме отворили същия файл, за да актуализираме bash скрипта с помощта на GNU Nano редактор. Като цяло кодът е същият, но променливата нова част е малко по -различна. Използвахме знак за процент, за да уведомим системата, че споменатите номера на въпросите представляват броя знаци от променлива val, която трябва да бъде премахната след този знак за процент. Можете да видите, че сме добавили 9 символа на въпросителен знак. Това означава, че последните 9 знака от низа FirstWorldCountries ще бъдат премахнати, а останалият низ ще бъде FirstWorld. След това този останал низ ще бъде записан в променлива new.

Когато сме изпълнили актуализирания bash файл, изходът идва както се очаква. Той показва оригиналния низ от първата променлива и стойността на втората променлива, нова, която е създадена от променливата val.

Метод 03: Използване на Sed

Sed е полезен и ефективен инструмент за промяна на текстови последователности. Това е неинтерактивна среда за разработка, която ви позволява да работите с въвеждане на данни и да извършвате прости текстови трансформации. Можете също да използвате sed, за да изтриете букви от текстове, които не искате. Ще използваме примерен низ и ще го насочим в командата sed за илюстративни цели. Можете да изтриете определен символ от някакъв низ с sed. И така, използвахме простия ред на низ в израза echo. Използвахме sed, за да премахнем буквата А от споменатия низ. Не забравяйте да следвате синтаксиса „s/string_to_be_removed //“. Изходът показва, че буквата А е премахната.

За да премахнем цялата дума Aqsa, споменахме първия и последния знак на думата с точките вътре, които представляват липсващи букви. Изходът показва низа с премахването на думата Aqsa.

За да премахнете произволен брой последни знаци от низ, споменете броя на точките според вашето изискване преди символа на долара, както е показано.

Метод 04: Използване на Awk

Awk е сложен скриптов език, който може да се използва за съвпадение на шаблони и обработка на текстове. Можете да използвате Awk, за да измествате и променяте въвеждането по различни начини. Можете също да изтриете букви от низове с помощта на awk. Awk изглежда малко по -различно от sed. Този път сменихме низа с Aqsa Yasin. Функцията awk ще направи подниза чрез метода substr и ще я отпечата в терминала. Дължината на функцията е използвана за демонстриране на броя на буквите, премахнати от споменатия низ. Тук дължина ($ 0) -5 означава да се премахнат последните 5 знака от низ, а останалите ще бъдат част от подниза, която трябва да се разпечата.

Опитахме се да премахнем последните 9 знака от низ Aqsa Yasin и получихме A като изходна подниза.

Метод 05: Използване на Cut

Cut изглежда е помощна програма за командния ред за извличане на част от текст от такава фраза или документ и отпечатването му на стандартен изход. Тази операция може да се използва и за премахване на букви от някакъв низ. Ще използваме примерна фраза и ще я предадем на инструкцията за изрязване за целите на тестването. Затова използвахме фразата Aqsa Yasin и я предадохме на заявката за изрязване. След флага –c, ние сме дефинирали диапазона от индекси за низ за изрязване на знаците от споменатия низ. Той ще показва символите от индекс 1 до индекс 5. Индекс 5 е изключен тук. Изходът показва първите 4 знака като Aqsa.

Този път ще използваме инструкцията за рязане по различен начин. Използвахме функцията rev, за да обърнем низа. След обратната страна на низ, ще изрежем първия знак от низ. Флагът -c2 -означава, че нашата подниза ще бъде символ 2. След това отново се използва обратната функция за връщане на низ. Така че този път върнахме оригиналния низ с премахването на последния знак.

За да премахнете последните 7 знака, просто трябва да споменете -c7 -в командата cut, докато използвате и функцията за обратно.

Заключение:

Има време за повече от един метод за извършване на основна задача в Linux. По подобен начин е възможно изтриване на знаци от текст. Тази статия демонстрира пет различни метода за премахване на нежелани знаци от низ, както и някои случаи. Какъвто и инструмент да изберете, зависи изцяло от вашия избор и по -важното от това, което искате да постигнете.