![csv 파일에서 열의 특정 부분 잘라내기 [닫기]](https://linux55.com/image/57381/csv%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%97%B4%EC%9D%98%20%ED%8A%B9%EC%A0%95%20%EB%B6%80%EB%B6%84%20%EC%9E%98%EB%9D%BC%EB%82%B4%EA%B8%B0%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
약 15개의 열이 포함된 CSV를 처리해야 합니다. 그 중 하나에는 밀리초가 포함된 특정 타임스탬프가 포함되어 있습니다. 이 csv를 데이터베이스에 삽입하면 특정 시간 형식으로 인해 오류가 발생합니다. 다른 열은 건드릴 수 없지만 여섯 번째 열의 출력을 자르고 새 파일을 만들어야 합니다.
예는 다음과 같습니다:
73306758;Da Lavorare;;20300;RESTAROC;10/10/2014 16:37:22.425;PALAGIANO;TA;PUGLIA;;Libretto;IDENTITA;AI2000000;OK;DOC Valido;0;0;CCCMNN85X26X251X;OK;CF Attribuito;0;0
답변1
네 번째 열 뒤에 숫자가 오는 경우를 제거한다고 가정하면 :
(질문에서는 여섯 번째 열이라고 말했지만 예제에서는 네 번째 열임) 다음 중 하나를 사용할 수 있습니다.
앗
awk -F';' -v OFS=";" '{sub(/\.[0-9]*$/,"",$6);}1;' file.csv > new.csv
Perl(이것은 실제 파일을 변경하고 원본을 유지합니다
file.csv.bak
)perl -i.bak -F';' -ane '$F[5]=~s/\.[0-9]*$//; print join ",", @F' file.csv