sed가있는 문자열에서 첫 번째 알려진 문자 삭제


12

sed가있는 문자열에서 첫 번째 알려진 문자를 어떻게 삭제합니까?

예를 들어 문자열 "@ ABCDEFG1234"에서 첫 번째 문자 (@)를 삭제한다고 가정합니다.

sed는 "@"가 첫 번째 문자로 존재하는지 확인하고 싶습니다. 그렇다면 문자를 삭제해야합니다.

답변:


10

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

^ 문자열의 시작을 의미

@ 당신의 알려진 숯

(.*) 나머지는 캡처

캡처 된 블록은 출력으로 대체됩니다. 죄송합니다. 현재 테스트 할 수는 없지만 그런 식이어야합니다.


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가 필요합니다. 그렇다면 캐릭터를 삭제해야합니다.” 답은 각 줄의 첫 번째 문자가 무엇이든 관계없이 삭제합니다. 예를 들어, 행에가 포함 된 경우 test123OP가 홀로 남겨둔 것처럼 보입니다.
Scott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.