다음 샘플 파일이 있습니다.
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