Как сбрить последний персонаж, используя sed? - PullRequest
24 голосов
/ 09 сентября 2010

То есть, исходя из ABCD -> ABC

Ответы [ 2 ]

62 голосов
/ 09 сентября 2010

Вы можете попробовать:

sed s'/.$//'

Используемое регулярное выражение: .$

  • . - это метасимвол регулярного выражения для соответствия чему угодно (кроме новой строки)
  • $ является привязкой конца строки.

Используя $, мы заставляем . соответствовать последнему символу

Это удалит последнийchar, будь то что угодно:

$ echo ABCD | sed s'/.$//'
ABC
$ echo ABCD1 | sed s'/.$//'
ABCD

Но если вы хотите удалить последний символ, только если это алфавит, вы можете сделать:

$ echo ABCD | sed s'/[a-zA-Z]$//'
ABC
$ echo ABCD1 | sed s'/[a-zA-Z]$//'
ABCD1
10 голосов
/ 10 сентября 2010

у вас нет вызова внешних команд, если вы используете оболочку, например, bash / ksh

s="ABCD"
echo ${s/%?/}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...