🐹 Bash: Удаление первых и последних символов из строк в bash.

Содержание:

1. Задача.
2. Решение задачи.

2.1. Файл с примером текста.
2.2. Удалить первые N символов с начала каждой строки.
2.3. Печать строки между заданными символами.
2.4. Печать первых N символов каждой строки.
2.5. Удалить крайний символ каждой строки.
2.6. Удалить крайние N символов каждой строки.
2.7. Удалить первый и крайний 1 символ с каждой стороны строки.
2.8. Удалить первые и крайние 8 символов с каждой стороны строки.

3. Оригиналы источников информации.


1. Задача.

Бывает, что требуется удалить несколько символы в начале каждой строки в файлах, чтобы подогнать вывод информации под тот же *.json с помощью bash-скрипта. Можно напечатать часть строки между заданными первым и последним символами, используя команду cut или удалить последние символы в конце каждой строки с помощью хитрости и команды reverse.

2. Решение задачи.

2.1. Файл с примером текста.

Предварительно создадим файл со следующим содержимым и будем использовать его в примерах ниже.

# cat file.txt

Ответ:

12345===I Love Bash===54321
12345===I Love Bash===54321
12345===I Love Bash===54321

Допустим нам необходимо удалить несколько символов с начала и с конца каждой строки этого файла.

2.2. Удалить первые N символов с начала каждой строки.

Используйте следующую команду чтобы удалить первые 5 символов каждой строки, то есть удаляем первые 5 символов и печатаем каждую строку, начиная с 6-ого символа:

# cat file.txt | cut -c 6-

Ответ:

===I Love Bash===54321
===I Love Bash===54321
===I Love Bash===54321

2.3. Печать строки между заданными символами.

Используйте следующую команду чтобы напечатать содержимое каждой строки между 9-ым и 20-ым символами в bash-скрипте:

# cat file.txt | cut -c 9-20

Ответ:

I Love Bash=
I Love Bash=
I Love Bash=

2.4. Печать первых N символов каждой строки.

Используйте следующую команду чтобы напечатать первые 20 символов каждой строки в bash-скрипте:

# cat file.txt | cut -c 1-20

Ответ:

12345===I Love Bash=
12345===I Love Bash=
12345===I Love Bash=

2.5. Удалить крайний символ каждой строки.

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

Используйте следующую команду чтобы удалить последний символ каждой строки в bash-скрипте:

# rev file.txt | cut -c 2- | rev

Ответ:

12345===I Love Bash===5432
12345===I Love Bash===5432
12345===I Love Bash===5432

2.6. Удалить крайние N символов каждой строки.

Используйте следующую команду чтобы удалить последние 8 символов каждой строки в bash-скрипте:

# rev file.txt | cut -c 9- | rev

Ответ:

12345===I Love Bash
12345===I Love Bash
12345===I Love Bash

2.7. Удалить первый и крайний 1 символ с каждой стороны строки.

Используйте следующую команду чтобы удалить самый первый и самый крайний символ из всех строк файла:

# sed -e "s/^.//;s/.$//" file.txt

Ответ:

2345===I Love Bash===5432
2345===I Love Bash===5432
2345===I Love Bash===5432

Ответ:

2.8. Удалить первые и крайние 8 символов с каждой стороны строки.

Используйте следующую команду чтобы удалить первые 8 символов и 8 крайних символов из всех строк файла:

# sed -e "s/^.\{,8\}//;s/.\{,8\}$//" file.txt

Ответ:

I Love Bash
I Love Bash
I Love Bash

3. Оригиналы источников информации.

  1. shellhacks.com «Удаление первых и последних символов из строк в bash».
  2. folkstalk.com «Remove Last character in String — Unix / Linux».