Програмиране на BASH

Премахване на символи от String в Bash

Премахване на символи от String в Bash

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

Статията обхваща как да извършите следното:

Командите, показани в тази статия, са изпълнени в Ubuntu 20.04 Фокална Фоса. Същите команди могат да се изпълняват и на други дистрибуции на Linux, които разполагат с горепосочените инструменти. Ще използваме приложението Terminal по подразбиране, за да стартираме командите. Можете да получите достъп до приложението Terminal, като използвате клавишната комбинация Ctrl + Alt + T.

Премахване на символи от низа с помощта на sed

Sed е мощна и удобна програма, използвана за редактиране на потоци от текст. Това е неинтерактивен текстов редактор, който ви позволява да извършвате основни текстови манипулации на входни потоци. Можете също така да използвате sed за премахване на нежелани символи от низове.

За демонстрационни цели ще използваме примерен низ и след това ще го поставим в командата sed.

Премахнете конкретен символ от низа

Използвайки sed, можете да премахнете определен символ от низ. Например, за да премахнете „h“ от низа „Здравей, как си?”Командата ще бъде:

$ echo "здравей, как си?"| sed 's / h //'

Това ще премахне само първата поява на 'h' в низа.

За да премахнете всички случаи на 'h' от низа, използвайте следната команда:

$ echo "здравей, как си?"| sed 's / h // g'

Където ж означава глобален. Той ще премахне всички появявания на 'h' в низа.

Премахнете първия символ от низа

За да премахнете първия знак от низа “Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| sed 's / ^.// 'файл

Където (.) съвпада точно с един символ и (^) съответства на всеки символ в началото на низа.

Премахване на последния знак от низа

За да премахнете последния знак от низа „Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| sed 's /.$ // '

Където (.) съвпада точно с един символ и ($) съответства на всеки символ в края на низа.

Премахнете първия и последния знак от низа

За да премахнете първия и последния знак от низа “Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| sed 's / ^.//;с/.$ // '

Премахнете символите от низа с помощта на awk

Awk е мощен скриптов език, използван за съвпадение на шаблони, заедно с обработка на текст. Awk ви позволява да филтрирате и трансформирате текст по различни начини. Можете също да използвате awk за премахване на символи от низове.

За демонстрационни цели ще използваме примерен низ и след това ще го преведем към командата awk.

Премахване на първия символ от низ

За да премахнете първия знак от низа “Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| awk 'print substr ($ 0, 2)'

Където ($ 0) е целият низ, а (2) е началната позиция на символа. Горната команда премахва първия символ, 'h,' номер на символа '1', и връща целевия низ, започващ с втория символ, 'e.'

Премахнете първите два знака от низа

Можете също да премахнете определен брой знаци от началото на низ. Например, за да премахнете първите два знака от низа „Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| awk 'print substr ($ 0, 3)'

Горната команда ще премахне първите два знака, „той“ или номерата на символите „1 и 2“, и връща целевия низ, започващ с номер на знака „3“ или „l.'

Премахване на последния знак от низа

За да премахнете последния знак от „Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| awk 'print substr ($ 0, 1, length ($ 0) -1)'

Където дължина ($ 0) -1 означава приспадане "1'от общата дължина на символа.

Горната команда ще отпечата низа, започващ с номер на символ '1' до дължина ($ 0) -1 за да премахнете последния знак.

Има '19символи (включително интервали) в горния низ. Командата ще работи чрез отпечатване на всички символи, като се започне с символ '1„и до характер“18,'при премахване на последния знак'19.'

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

За да премахнете последните два знака от „Здравей, как си?”Командата ще бъде:

$ echo "здравей, как си?"| awk 'print substr ($ 0, 1, length ($ 0) -2)'

Където дължина ($ 0) -2 означава приспадане "2'от общата дължина на символа.

Горната команда ще отпечата низа, започвайки с номер на символ '1„и до номер на символа“дължина ($ 0) -2,'за премахване на последните два знака в низа.

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

За да премахнете както първия, така и последния знак от низа “Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| awk 'print substr ($ 0, 2, дължина ($ 0) - 2)'

Където дължина ($ 0) -2 означава приспадане "2'от общата дължина на символа.

Горната команда ще отпечата низа, започвайки с номер на символ '2„до номер на символа“дължина ($ 0) -2,'за премахване на първия и последния знак.

Премахване на символа от низа с помощта на изрязване

Cut е инструмент за команден ред, който обикновено се използва за извличане на част от текст от низ или файл и отпечатване на резултата на стандартен изход. Можете също да използвате тази команда за премахване на символи от низ.

За демонстрационни цели ще използваме примерен низ и след това ще го поставим в командата cut.

Премахнете първия символ от низа

За да премахнете първия символ от низа, „Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| изрязване -c 2-

Тази команда ще отпечата низа, започвайки с втория символ, докато премахва първия символ.

Премахнете първите четири знака от низа

За да премахнете първите четири знака от низа „Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| изрежете -c 5-

Тази команда ще отпечата низа, започвайки от петия знак, като същевременно ще премахне първите четири знака.

Печат на низ между 2 и 5 знака

За да отпечатате низа „Здравей, как си?” между втория и петия знак, командата ще бъде:

$ echo "здравей, как си?"| изрежете -c 2-5

Тази команда ще отпечата низа, започвайки от втория знак и стигайки до петия знак, като същевременно премахва останалите начални и крайни знаци.

Премахване на последния знак от низа

За да премахнете последния знак от низа „Здравей, как си?” използвай разрез команда с рев, както следва:

$ echo "здравей, как си?"| rev | cut -c2- | rev

Тази команда работи, като първо обръща низа, след това изрязва първия символ и накрая го обръща отново, за да ви даде желания изход.

Премахнете последните четири знака от низа

За да премахнете последните четири знака от реда „Здравей, как си?” командата ще бъде:

$ echo "здравей, как си?"| rev | cut -c5- | rev

Тази команда работи, като първо обръща низа, след това изрязва първите четири знака и след това го обръща отново, за да ви даде желания изход.

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

За да премахнете първия и последния знак от низа “Здравей, как си?” използвай разрез команда с рев, както следва:

$ echo "здравей свят!"| cut -c2- | rev | cut -c2- | rev

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

Премахване на символ от низа с помощта на tr

Командата tr (съкратено от translate) се използва за превод, изстискване и изтриване на символи от низ. Можете също да използвате tr, за да премахнете символи от низ.

За демонстрационни цели ще използваме примерен низ и след това ще го преведем към командата tr.

Премахване на всички прояви на характер

Използвайки командата tr, можете да премахнете всички случаи на малки или големи букви от вашия низ. Например, за да премахнете всички случаи на малки букви „h“ от низа, командата ще бъде:

$ echo "Здравейте, как сте?"| tr -d h

По същия начин, за да премахнете всички случаи на главни букви „H“ от низа, командата ще бъде:

$ echo "Здравейте, как сте?"| tr -d H

Можете също да използвате интерпретирани последователности, за да премахнете малки или главни букви:

$ echo "Здравейте, как сте?"| tr -d [: горен:]

$ echo "ЗДРАВЕ, как си?"| tr -d [: по-ниско:]

Премахнете всички случаи на малки и големи букви

Можете също така да премахнете всички нива на малки и главни символи от низ. Например, следната команда ще премахне всички случаи на символа 'h', както малки, така и главни.

$ echo "Здравейте, как сте?"| tr -d 'hH'

Премахнете всички прояви на символи в определен диапазон

За да премахнете всички появявания на символи от низ в конкретния диапазон 'd-h', командата ще бъде:

$ echo "здравей, как си?"| tr -d 'd-h'

Тази команда ще премахне всички символи в диапазона 'd-h' (d, e, f, g, h) в низа.

Заключение

В Linux винаги ще има повече от един начин за изпълнение на проста работа. Същото важи и за премахването на символи от низ. Тази статия ви показа четири различни начина за това, заедно с няколко примера за премахване на нежелани знаци от низ. Решението кой инструмент да използвате зависи от вашите предпочитания и по-важното от това, което искате да постигнете.

Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...
Vulkan за потребители на Linux
С всяко ново поколение графични карти виждаме, че разработчиците на игри преместват границите на графичната вярност и се приближават една крачка до фо...
OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...