문자 클래스를 사용하여 숫자 목록을 우편번호 형식으로 지정

문자 클래스를 사용하여 숫자 목록을 우편번호 형식으로 지정

숫자 목록을 우편번호 형식(5자리)으로 포맷하려고 합니다. 나는 이 sed유틸리티를 사용하여 이 작업을 수행합니다. file.txt"23232334", "3434654", "33532", "94607"이 포함되어 있다고 가정합니다 . 내 스크립트에는 다음과 같이 썼습니다.

sed -n '/^[0-9] [0-9] [0-9] [0-9] [0-9]$/p' file.txt

하지만 작동하지 않습니다.

나도 시도했다

sed -n '/^[[:digit:]] [[:digit:]] [[:digit:]] [[:digit:]] [[:digit:]]$/p' file.txt

캐릭터 클래스에 대해 제가 이해한 바에 따르면 이러한 단계는 작동할 것입니다. 하지만 왜 출력이 나오지 않는지 모르겠습니다.

도와주세요

감사해요

답변1

명령이 작동하지 않는 데에는 여러 가지 이유가 있습니다. 먼저, 숫자 사이에 공백이 있고 sed공백으로 구분된 숫자를 찾습니다. 둘째, 을 작성할 때 ^5 $개의 숫자가 전체 행을 차지해야 하므로 예제의 4개 숫자 중 마지막 2개만 테스트를 통과합니다. 너가 원하는게 그거야?

관련 정보