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

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

Вы также узнаете как удалить последние символы в конце каждой строки с помощью хитрости и команды reverse.

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

$ cat file
12345===I Love Bash===54321
12345===I Love Bash===54321
12345===I Love Bash===54321

Удалить Первые N Символов Каждой Строки

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

$ cat file | cut -c 6-
===I Love Bash===54321
===I Love Bash===54321
===I Love Bash===54321

Печать Строки Между Заданными Символами

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

$ cat file | cut -c 9-20
I Love Bash
I Love Bash
I Love Bash

Печать Первых N Символов Каждой Строки

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

$ cat file | cut -c 1-20
12345===I Love Bash
12345===I Love Bash
12345===I Love Bash

Удалить Последний Символ Каждой Строки

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

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

$ rev file | cut -c 2- | rev
12345===I Love Bash===5432
12345===I Love Bash===5432
12345===I Love Bash===5432

Удалить Последние N Символов Каждой Строки

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

$ rev file | cut -c 9- | rev
12345===I Love Bash
12345===I Love Bash
12345===I Love Bash

2 Replies to “Удаление Первых и Последних Символов из Строк в Bash”

  1. ПервыйНах!
    Статья весьма полезная, т.к. man cut не страдает избытком Информативности и Примеров.
    Но почему в Заголовке написано про Bash, если Статья про cut?
    Подобные Вещи должны работать в Любой ∗nix Системе из под Любого Shell.

  2. I’m a fan of sed. So I would use this 1 liner.
    sed -e «s/^.//;s/.$//» file
    or
    sed -e «s/^.\{,8\}//;s/.\{,8\}$//» file

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.