Програмування BASH

Видалення символів із рядка в Bash

Видалення символів із рядка в 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'

Де g означає глобальний. Це видалить усі входження "h" у рядок.

Видалити перший символ із рядка

Щоб видалити перший символ із рядка “Привіт як ти?" команда буде такою:

$ echo "привіт, як справи?"| sed 's / ^.// 'файл

Де (.) відповідає точно одному символу і (^) відповідає будь-якому символу на початку рядка.

Видалити останній символ із рядка

Щоб видалити останній символ із рядка “Привіт як ти?" команда буде такою:

$ echo "привіт, як справи?"| sed 's /.$ // '

Де (.) відповідає точно одному символу і ($) відповідає будь-якому символу в кінці рядка.

Видаліть перший та останній символ із рядка

Щоб видалити перший і останній символ із рядка “Привіт як ти?" команда буде такою:

$ echo "привіт, як справи?"| sed 's / ^.//; 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, length ($ 0) - 2)' '

Де довжина ($ 0) -2 означає вирахування '2'від загальної довжини символу.

Вищевказана команда надрукує рядок, починаючи з номера символу '2'до номера символу'довжина ($ 0) -2,'для видалення першого та останнього символів.

Видалення символу з рядка за допомогою вирізу

Вирізати - це інструмент командного рядка, який зазвичай використовується для вилучення частини тексту з рядка або файлу та друку результату у стандартному виведенні. Ви також можете використовувати цю команду для видалення символів із рядка.

Для демонстраційних цілей ми використаємо зразок рядка, а потім передаємо його команді cut.

Видалити перший символ із рядка

Щоб видалити перший символ із рядка, “Привіт як ти?" команда буде такою:

$ echo "привіт, як справи?"| вирізати -c 2-

Ця команда надрукує рядок, починаючи з другого символу, одночасно видаляючи перший символ.

Видаліть перші чотири символи з рядка

Щоб видалити перші чотири символи з рядка “Привіт як ти?" команда буде такою:

$ echo "привіт, як справи?"| вирізати -c 5-

Ця команда надрукує рядок, починаючи з п'ятого символу, одночасно видаляючи перші чотири символи.

Друкувати рядок між 2 та 5 символами

Щоб надрукувати рядок “Привіт як ти?" між другим і п'ятим символами, команда буде такою:

$ echo "привіт, як справи?"| вирізати -c 2-5

Ця команда надрукує рядок, починаючи з другого символу і закінчуючи п'ятим символом, видаляючи при цьому залишилися символи початку та кінця.

Видалити останній символ із рядка

Щоб видалити останній символ із рядка “Привіт як ти?" використовувати вирізати команда за допомогою рев, наступним чином:

$ echo "привіт, як справи?"| rev | вирізати -c2- | rev

Ця команда працює, спершу повертаючи рядок, потім вирізаючи перший символ і, нарешті, повертаючи його знову, щоб отримати бажаний результат.

Видалити останні чотири символи з рядка

Щоб видалити останні чотири символи з рядка “Привіт як ти?" команда буде такою:

$ echo "привіт, як справи?"| rev | вирізати -c5- | rev

Ця команда працює, спершу змінивши рядок, потім вирізавши перші чотири символи, а потім повернувши його назад, щоб отримати бажаний результат.

Видалення першого та останнього символів із рядка

Щоб видалити перший та останній символи з рядка “Привіт як ти?" використовувати вирізати команда за допомогою рев, наступним чином:

$ echo "привіт світ!"| вирізати -c2- | rev | вирізати -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 завжди буде кілька способів виконати просту роботу. Те саме стосується видалення символів із рядка. Ця стаття показала вам чотири різні способи зробити це, а також кілька прикладів для видалення небажаних символів із рядка. Рішення, яким інструментом користуватися, залежить від ваших уподобань і, що більш важливо, від того, чого ви хочете досягти.

Як зафіксувати та транслювати ігровий сеанс на Linux
Раніше грати в ігри вважалося лише хобі, але з часом ігрова індустрія спостерігала величезний ріст з точки зору технологій та кількості гравців. Аудит...
Найкращі ігри для гри з відстеженням рук
Нещодавно Oculus Quest представив чудову ідею відстеження рук без контролерів. Завдяки постійно зростаючій кількості ігор та заходів, які виконують пі...
Як показати накладання екранного меню в повноекранному додатку та іграх для Linux
Гра у повноекранні ігри або використання додатків у повноекранному повноекранному режимі може відключити від відповідної системної інформації, видимої...