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

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

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

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

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

Команды, показанные в этой статье, были выполнены в Ubuntu 20.04 Фокальная ямка. Те же команды можно выполнять и в других дистрибутивах Linux, в которых доступны указанные выше инструменты. Мы будем использовать приложение Терминала по умолчанию для запуска команд. Вы можете получить доступ к приложению Терминал с помощью сочетания клавиш 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, длина ($ 0) -1)'

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

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

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

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

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

$ echo "привет как дела?"| awk 'print substr ($ 0, 1, длина ($ 0) -2)'

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

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

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

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

$ echo "привет как дела?"| awk 'print substr ($ 0, 2, длина ($ 0) - 2)'

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

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

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

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

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

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

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

$ echo "привет как дела?"| cut -c 2-

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

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

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

$ echo "привет как дела?"| cut -c 5-

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

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

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

$ echo "привет как дела?"| cut -c 2-5

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

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

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

$ echo "привет как дела?"| rev | cut -c2- | rev

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

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

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

$ echo "привет как дела?"| rev | cut -c5- | rev

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

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

Чтобы удалить первый и последний символы из строки «Здравствуйте, как поживаете?” использовать резать команда с 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 [: upper:]

$ echo "ПРИВЕТ! Как дела??"| tr -d [: нижний:]

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

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

$ echo "Привет, как дела?"| tr -d 'hH'

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

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

$ echo "привет как дела?"| tr -d 'd-h'

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

Заключение

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

WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...
Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...
Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...