Удаление символов из строки в Bash

Removing Characters From String Bash



Иногда вам может потребоваться удалить символы из строки. Какой бы ни была причина, Linux предоставляет вам различные встроенные удобные инструменты, которые позволяют удалять символы из строки в Bash. В этой статье показано, как использовать эти инструменты для удаления символов из строки.

В статье рассказывается, как выполнить следующее:







  • Удалить символ из строки с помощью sed
  • Удалить символ из строки с помощью awk
  • Удалить символ из строки с помощью вырезания
  • Удалить символ из строки с помощью tr

Команды, показанные в этой статье, были выполнены в Ubuntu 20.04 Focal Fossa. Те же команды можно выполнять и в других дистрибутивах Linux, в которых доступны указанные выше инструменты. Мы будем использовать приложение Терминал по умолчанию для выполнения команд. Вы можете получить доступ к приложению Терминал с помощью сочетания клавиш Ctrl + Alt + T.



Удаление символов из строки с помощью sed

Sed - мощная и удобная утилита, используемая для редактирования потоков текста. Это неинтерактивный текстовый редактор, который позволяет выполнять базовые манипуляции с текстом над входными потоками. Вы также можете использовать sed для удаления нежелательных символов из строк.



В демонстрационных целях мы будем использовать образец строки, а затем передать ее команде sed.





Удалить определенный символ из строки

Используя sed, вы можете удалить определенный символ из строки. Например, чтобы удалить h из строки Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | sed 's / h //'

Это удалит только первое вхождение 'h' в строке.
Удалить определенный символ из String1
Чтобы удалить все вхождения «h» из строки, используйте следующую команду:



$выбросил 'Привет, как дела?' | sed 's / h // g'

Где грамм означает глобальный. Он удалит все вхождения 'h' в строке.
Удалить определенный символ из String2

Удалить первый символ из строки

Чтобы удалить первый символ из строки Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | sed 's /^.//' файл

Где (.) Соответствует ровно одному символу, а (^) соответствует любому символу в начале строки.
Удалить первый символ из строки

Удалить последний символ из строки

Чтобы удалить последний символ из строки Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | sed 's /.$//'

Где ( . ) соответствует ровно одному символу, а ($) соответствует любому символу в конце строки.
Удалить последний символ из строки

Удалить первый и последний символы из строки

Чтобы удалить первый и последний символ из строки Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | sed 's /^.//; s /.$//'

Удалить первый и последний символы из строки

Удаление символов из строки с помощью awk

Awk - это мощный язык сценариев, используемый для сопоставления с образцом наряду с обработкой текста. Awk позволяет фильтровать и преобразовывать текст различными способами. Вы также можете использовать awk для удаления символов из строк.

В демонстрационных целях мы будем использовать образец строки, а затем передать ее команде awk.

Удалить первый символ из строки

Чтобы удалить первый символ из строки Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | awk '{print substr ($ 0, 2)}'

Где ($ 0) - это вся целевая строка, а (2) - начальная позиция символа. Приведенная выше команда удаляет первый символ «h», номер символа «1» и возвращает целевую строку, начинающуюся со второго символа «e.»
Удалить первый символ из строки

Удалить первые два символа из строки

Вы также можете удалить определенное количество символов из начала строки. Например, чтобы удалить первые два символа из строки Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | awk '{print substr ($ 0, 3)}'

Приведенная выше команда удалит первые два символа, «он» или номера символов «1 и 2», и вернет целевую строку, начинающуюся с символа «3» или «l».
Удалить первые два символа из строки

Удалить последний символ из строки

Чтобы удалить последний символ из Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | awk '{print substr ($ 0, 1, длина ($ 0) -1)}'

Где длина ($ 0) -1 означает вычет ' 1 ’От общей длины символа.

Приведенная выше команда напечатает строку, начинающуюся с номера символа ‘ 1 ' вплоть до длина ($ 0) -1 чтобы убрать последний символ.

Есть ' 19 ’Символов (включая пробелы) в приведенной выше строке. Команда будет работать, печатая все символы, начиная с символа ‘ 1 »И до символа« 18 , ’При удалении последнего символа‘ 19 . ’

rmv последняя строка char frm

Удалить последние два символа из строки

Чтобы удалить последние два символа из Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | awk '{print substr ($ 0, 1, длина ($ 0) -2)}'

Где длина ($ 0) -2 означает вычет ' 2 ’От общей длины символа.

Приведенная выше команда напечатает строку, начинающуюся с номера символа ‘ 1 ’И до символьного номера‘ длина ($ 0) -2 , ’, Чтобы удалить последние два символа в строке.
Удалить последние два символа из строки

Удалить как первый, так и последний символы из строки

Чтобы удалить как первый, так и последний символы из строки Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | awk '{print substr ($ 0, 2, длина ($ 0) - 2)}'

Где длина ($ 0) -2 означает вычет ' 2 ’От общей длины символа.

Приведенная выше команда напечатает строку, начинающуюся с номера символа ‘ 2 ’До символьного номера‘ длина ($ 0) -2 , ’, Чтобы удалить первый и последний символы.

Удалить как первый, так и последний символы из строки

Удалить символ из строки с помощью вырезания

Вырезать - это инструмент командной строки, обычно используемый для извлечения части текста из строки или файла и вывода результата на стандартный вывод. Вы также можете использовать эту команду для удаления символов из строки.

В демонстрационных целях мы будем использовать образец строки, а затем передать ее команде вырезания.

Удалить первый символ из строки

Чтобы удалить первый символ из строки, Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | резать -c 2-

Эта команда напечатает строку, начиная со второго символа, удаляя первый символ.
rmv cut -c

Удалить первые четыре символа из строки

Чтобы удалить первые четыре символа из строки Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | резать -c 5-

Эта команда напечатает строку, начиная с пятого символа, удаляя первые четыре символа.
Удалить первые четыре символа из строки

Печатать строку между 2-м и 5-м символами

Чтобы напечатать строку Привет, как дела? между вторым и пятым персонажами , команда будет такой:

$выбросил 'Привет, как дела?' | резать -c 2-5

Эта команда напечатает строку, начиная со второго и до пятого символа, удаляя оставшиеся начальный и конечный символы.
rmv 2-й и 5-й c2

Удалить последний символ из строки

Чтобы удалить последний символ из строки Привет, как дела? использовать резать команда с rev , следующее:

$выбросил 'Привет, как дела?' | rev | резать -c2- | rev

Эта команда работает, сначала перевернув строку, затем вырезая первый символ и, наконец, снова перевернув ее, чтобы получить желаемый результат.
02 Удалить последний символ из строки

Удалить последние четыре символа из строки

Чтобы удалить последние четыре символа из строки Привет, как дела? команда будет такой:

$выбросил 'Привет, как дела?' | rev | резать -c5- | rev

Эта команда работает, сначала перевернув строку, затем вырезая первые четыре символа, а затем снова перевернув ее, чтобы получить желаемый результат.
rmv последние четыре символа

Удалить первый и последний символы из строки

Чтобы удалить первый и последний символы из строки Привет, как дела? использовать резать команда с rev , следующее:

$выбросил 'Привет, мир!' | резать -c2- | rev | резать -c2- |rev

Эта команда работает, вырезая первый символ, затем переворачивая строку и обрезая ее первый символ, а затем снова меняя ее, чтобы получить желаемый результат.
RMV первый и последний

Удалить символ из строки с помощью tr

Команда tr (сокращение от translate) используется для перевода, сжатия и удаления символов из строки. Вы также можете использовать tr для удаления символов из строки.

В демонстрационных целях мы будем использовать образец строки, а затем передать ее команде tr.

Удалить все вхождения символа

Используя команду tr, вы можете удалить все вхождения строчных или прописных символов из вашей строки. Например, чтобы удалить все вхождения строчного символа «h» из строки, команда будет выглядеть так:

$выбросил 'Привет, как дела?' | NS -dчас

удалить все вхождения 01

Точно так же, чтобы удалить все вхождения символа верхнего регистра «H» из строки, команда будет выглядеть так:

$выбросил 'Привет, как дела?' | NS -dЧАС

Вы также можете использовать интерпретируемые последовательности для удаления строчных или прописных букв:

$выбросил 'Привет, как дела?'| NS -d [: верх:]

случаи ниже

$выбросил 'Привет, как дела?'| NS -d [:ниже:]

вхождения верхний

Удалить все вхождения строчных и прописных символов

Вы также можете удалить из строки все вхождения как строчных, так и прописных символов. Например, следующая команда удалит все вхождения символа «h» как в нижнем, так и в верхнем регистре.

$выбросил 'Привет, как дела?' | NS -d‘HH’

случаи верхних и нижних

Удалить все вхождения символов в определенном диапазоне

Чтобы удалить все вхождения символов из строки в определенном диапазоне «d-h», команда будет выглядеть так:

$выбросил 'Привет, как дела?' | NS -d 'д-ч'

Эта команда удалит все символы в диапазоне «d-h» (d, e, f, g, h) в строке.
вхождения в конкретный диапазон

Заключение

В Linux всегда будет несколько способов выполнить простую работу. То же самое и с удалением символов из строки. В этой статье показано четыре различных способа сделать это, а также несколько примеров удаления нежелательных символов из строки. Решение о том, какой инструмент использовать, зависит от ваших предпочтений и, что более важно, от того, чего вы хотите достичь.