7/20/2017 17:00
예를 들어, 여섯 번째 열에 나열된 날짜 형식의 .csv 파일을 생각해 보세요.
입력을 제공하면 7/11/2017
일치하는 입력 날짜로 열을 필터링해야 하며 출력은 다른 .csv 파일에 저장되어야 합니다.
주어진 입력을 기반으로 여섯 번째 열을 필터링하는 명령이 필요합니다.
file.csv에는 다음 항목이 있습니다.
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/21/2017 17:00,23,iii,89
23,54,one,tree,56,7/30/2017 17:00,23,iii,89
마찬가지로 여섯 번째 열에는 여러 날짜 및 시간 형식의 항목이 있습니다. 런타임 시 입력(예: 읽기)이 주어지면 7/20/2017
열 6의 날짜를 필터링하고 출력 항목을 다른 .csv 파일에 저장해야 합니다.
답변1
간단하게앗:
awk -F, -v d="7/20/2017" '$6~d' input.csv > dates.csv
콘텐츠 dates.csv
:
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
날짜 값이 쉘 변수에서 오는 경우:
d="7/20/2017"
awk -F, -v d="$d" '$6~d' input.csv > dates.csv
답변2
다음 형식의 날짜가 포함된 열이 하나만 있다고 가정합니다.
$ grep -F '7/20/2017' file.csv
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
새 파일로 리디렉션할 수 있습니다.
$ grep -F '7/20/2017' file.csv >new.csv
CSV 파일을 올바르게 구문 분석하려면 내장된 CSV 구문 분석기를 사용하세요.CSVkit 도구:
$ csvgrep -c 6 -m '7/20/2017' file.csv
23,54,one,tree,56,7/20/2017 17:00,23,iii,89
23,54,one,tree,56,7/20/2017 17:00,23,iii,89