sed를 사용하여 숫자를 문자로 바꾸는 방법

sed를 사용하여 숫자를 문자로 바꾸는 방법

다음 줄이 포함된 텍스트 파일이 있습니다.

Maynard G. Krebs , ss #111−22−3333, the goofy but lovable beatnik in The Many
Loves of Dobie Gillis. None of the show's episodes ever specified Gilligan's

#111-22-3333sed를 사용하여 숫자를 로 바꾸는 방법은 무엇입니까 xxx-xx-xxxx?

내 sed 스크립트에 있는 내용은 다음과 같습니다. s/([0-9]{3}-[0-9]{2}-[0-9]{4})/xxx-xx-xxxx/g
내가 실행합니다.sed -f redact.sed redact.txt

답변1

  • 대괄호를 제거하십시오. 그렇지 않으면 Sed는 파일에서 대괄호를 일치시키려고 시도합니다.

  • {n}확장 정규식의 일부입니다. Sed에 플래그를 제공 -E하여 활성화하거나( sed -Ef redact.sed redact.txt) 각 중괄호를 이스케이프하세요.

  • 파일에는 일종의 대시(0xE28892)가 포함되어 있습니다. 이는 이전 0x2D ASCII가 아니므 -로 이를 Sed 표현식에도 입력해야 합니다.

    sed 's/[0-9]\{3\}−[0-9]\{2\}−[0-9]\{4\}/xxx-xx-xxxx/g'
    sed -E 's/[0-9]{3}−[0-9]{2}−[0-9]{4}/xxx-xx-xxxx/g'
    

관련 정보