프로젝트 이름, 값, 설명, 구성 요소의 4개 열이 포함된 CSV 파일이 있는데 파일이 상당히 큽니다.
위의 CSV 파일에서 구성 요소를 지정하는 행만 표시하는 템플릿을 생성해야 합니다(예: 검색 기준인 구성 요소='abc').
답변1
내장된 쉼표가 없다고 가정하면 awk가 이에 적합합니다.
awk -F , '$4 == "abc" { print }' input.csv
답변2
csvkit: 의 다른 도구를 사용했습니다 csvgrep
.
$ csvgrep -c 4 -m "abc" data.csv > test.csv
파일의 결과 내용은 다음과 같습니다 test.csv
.
Itemname,Value,Description,Component
33,34,35,abc
-c
보려는 열을 지정합니다. 제목을 사용할 수도 있습니다. 철자가 정확히 같은지 확인하세요. 대문자가 중요합니다.
$ csvgrep -c Component -m "abc" data.csv > test.csv
Itemname,Value,Description,Component
33,34,35,abc
그리고 -m
일치 패턴입니다. 일치에 더 깊이 들어가고 싶다면 정규 표현식을 사용하여 이를 수행할 수 있는 방법이 있다고 확신합니다. 그런 다음 이라는 파일에 저장됩니다 test.csv
.
답변3
다음과 같은 내용이 있습니다 data.csv
.
Itemname,Value,Description,Component
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16
17,18,19,20
21,22,23,24
25,26,27,28
29,30,31,32
33,34,35,abc
37,38,39,40
41,42,43,44
45,46,47,48
49,50,51,52
53,54,55,56
57,58,59,60
61,62,63,64
65,66,67,68
69,70,71,72
73,74,75,76
77,78,79,80
81,82,83,84
85,86,87,88
89,90,91,92
93,94,95,96
97,98,99,100
사용csvkit
:
$ csvsql --query "SELECT * FROM data WHERE Component = 'abc'" data.csv
Itemname,Value,Description,Component
33,34,35,abc