파일의 지정된 위치에 공백을 삽입합니다.

파일의 지정된 위치에 공백을 삽입합니다.

다음 샘플 파일이 있습니다.

234234|111||J1X0H8|SERP||R|D|666|M
234235|222||J1X0N5|SERP||C||555|M

각 행에 대해 다음과 같이 네 번째 열의 세 번째 문자 뒤에 공백을 삽입해야 합니다.

234234|111||J1X 0H8|SERP||R|D|666|M
234235|222||J1X 0N5|SERP||C||555|M

sed 및 awks 명령을 사용해 보았지만 긍정적인 결과가 없었습니다. 어떻게 해야 하나요?

답변1

awk를 사용하면

awk -F '|' -v OFS='|' '{sub(/^.../, "& ", $4); print}' file

하지만 이는 내부에서 편집할 수 없으므로 다음을 수행해야 합니다.

t=$(mktemp)
awk -F '|' -v OFS='|' '{sub(/^.../, "& ", $4); print}' file > "$t" && mv "$t" file

sed를 사용하여,

sed -i 's/^[^|]*|[^|]*|[^|]*|.../& /' file

우편번호를 확인하고 싶다면

sed -i 's/^\([^|]*|[^|]*|[^|]*|[[:alpha:]][[:digit:]][[:alpha:]]\)\([[:digit:]][[:alpha:]][[:digit:]]|\)/\1 \2/' file

관련 정보