![잘못된 데이터를 새 파일로 필터링한 다음 삭제하는 방법은 무엇입니까?](https://linux55.com/image/190311/%EC%9E%98%EB%AA%BB%EB%90%9C%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%83%88%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%ED%95%84%ED%84%B0%EB%A7%81%ED%95%9C%20%EB%8B%A4%EC%9D%8C%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음은 제가 정렬한 샘플 데이터입니다(3개 열).
CustomerId, fname, lname, email, 성별, 구매 금액, 신용 카드, 거래 ID, 거래 날짜, 거리, 도시, 주, 우편 번호, 전화
<redacted>
다음 명령을 사용하여:
awk -F ',' '{ state = $12 ? $12: "exceptions.csv"; print}' < "03_conv_gender.tmp" > "04_filter_bad_data.tmp"
각 행에 {state} 값이 누락되었는지 확인하고, 누락된 경우 "Exceptions.csv"라는 새 파일에 넣습니다.
"04_filter_bad_data.tmp"에서 원본 불량 데이터를 어떻게 제거합니까? 아니면 이를 수행하는 더 좋은 방법이 있습니까?
답변1
awk -F, '{ print >($12==""?"badData.csv":"goodData.csv") }' infile
그러면 입력 파일이 빈 열 #12(상태필드)가 파일에 기록됩니다."잘못된 데이터.csv"그렇지 않으면 쓰여질 것입니다"좋은 데이터.csv"결과물 파일.