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

12

Как удалить первый известный символ в строке с помощью sed?

Например, я хочу удалить первый символ (который является @) в строке "@ ABCDEFG1234"

Я хочу, чтобы sed проверил, существует ли «@» в качестве первого символа. Если это так, он должен удалить символ.

Яэль
источник

Ответы:

10

sed 's/^@\(.*\)/\1/'

^ означает начало строки

@ ваш известный персонаж

(.*) остальные захвачены

Захваченный блок будет заменен на вывод. Извините, в данный момент не могу проверить это, но должно быть что-то вроде этого

Pablo
источник
18

Там нет необходимости захватывать и заменять.

sed 's/^@//'

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

Джонни
источник
0

Вы можете сделать это вместо этого.

sed 's /^.//'

^ - Starting character 
. - No of charactes(.. means two characters)

Пример :

echo test123 | sed 's/^.//'
est123
echo test123 | sed 's/^..//'
st123
Пракааш Рави Чандран
источник
1
Вопрос говорит: «Я хочу, чтобы sed проверял, существует ли« @ »в качестве первого символа. Если это так, он должен удалить символ ». Ваш ответ удаляет первый символ каждой строки независимо от того, что это. Например, если строка содержит test123, похоже, что ОП хочет, чтобы ее оставили в покое.
Скотт