![문자 클래스를 사용하여 숫자 목록을 우편번호 형식으로 지정](https://linux55.com/image/164760/%EB%AC%B8%EC%9E%90%20%ED%81%B4%EB%9E%98%EC%8A%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%88%AB%EC%9E%90%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EC%9A%B0%ED%8E%B8%EB%B2%88%ED%98%B8%20%ED%98%95%EC%8B%9D%EC%9C%BC%EB%A1%9C%20%EC%A7%80%EC%A0%95.png)
숫자 목록을 우편번호 형식(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개만 테스트를 통과합니다. 너가 원하는게 그거야?