Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How does one delete the first known character in a string with sed?

For example, say I want to delete the first character (which is @) in the string "@ABCDEFG1234"

I want sed to verify whether "@" exists as the first character. If so, it should delete the character.

share|improve this question
up vote 5 down vote accepted

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

^ means beginning of the string

@ your known char

(.*) the rest, captured

then captured block will be substituted to output Sorry, can't test it at the moment, but should be something like that

share|improve this answer
great solution many THX yael – yael Jun 27 '10 at 14:40
The other answer is simpler. – reinierpost Sep 14 '11 at 7:50

There's no need to capture and replace.

sed 's/^@//'

This replaces the character @ when it's first ^ in the string, with nothing. Thus, deleting it.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .