여러 .csv 파일에서 문자열을 찾는 방법

여러 .csv 파일에서 문자열을 찾는 방법

내 데스크탑의 HW라는 폴더에 여러 개의 .csv 파일이 있고 cygwin을 사용하고 있으며 특정 열에서 문자열을 찾고 싶습니다. 예를 들어 X 열에서 ARD는 콘텐츠 값의 헤더이며 true이거나 false , ARD=true 개수를 찾고 싶습니다.

도와주세요...

답변1

키워드가 항상 같은 열(예: 열 번호 2)에 있으면 간단합니다.

cut -d, -f 2 file(s) | grep -c 'true'

즉, 열 2를 잘라내고(-f 2), ","를 필드 구분 기호로 사용하고(-d, ), 모든 true를 가져오고(grep) 개수를 계산합니다(-c).

좀 더 복잡하게 하려면 "ARD" 열을 검색해야 한다면

awk  'BEGIN {FS = ","}  ; FNR == 1 { for ( i=1 ; i<=NF ; i++ ) { if ( $i=="ARD" ) { col=i } } } ; FNR >= 2 { print $col }' file(s) | grep -c 'true' 

1) BEGIN { FS = "," }각 작업(BEGIN) 앞에 쉼표를 ","필드 구분 기호( FS=) 로 사용합니다.

2) 파일의 첫 번째 행(즉, 헤더 행)의 경우( FNR == 1) 모든 열에 대해( for ( i=1 ; i<=NF ; i++ )) 문자열 "ARD"가 이 열에 있는지 확인합니다( if ( $i=="ARD")). 그렇다면 변수를 col열 번호 로 설정합니다.{ col=i }

3) 이제 열 번호를 알았으므로 파일의 첫 번째 줄(=헤더)(즉, 2보다 큰 모든 줄)을 생략하고 해당 열을 인쇄합니다 FNR >= 2 { print $col }. 여기서는 col이전에 정의한 변수를 사용합니다 .

grep4) -c"true" 발생 횟수를 ( ) 카운트하여 파이프 출력

5) 파일별 목록의 경우 bash 스크립트에서 for 루프를 사용합니다.

답변2

3개의 파일이 있다고 가정해 보겠습니다.

new.csv

Col1,Col2,ARD,Col4
1,2,true,3
1,2,true,3
1,2,true,3
1,2,false,3
1,2,false,3
1,2,false,3

new1.csv:

Col1,Col2,ARD,Col4
1,2,true,3
1,2,true,3
1,2,false,3
1,2,false,3
1,2,false,3
1,2,false,3

new2.csv:

Col1,Col2,ARD,Col4
1,2,true,3
1,2,false,3
1,2,false,3
1,2,false,3
1,2,false,3
1,2,false,3

하다:

awk -F',' '{print $3}' *.csv | grep -c true

산출:

6

가정:

  1. 이것급성 호흡기 질환항상 같은 열에 있음(예제에서는 열 3)

  2. 이 디렉터리의 grep모든 파일을 찾아보시겠습니까?*.csv

답변3

사용을 고려해 보셨나요?그러면 구분선

grep TRUE | wc -l

결과를 계산하려면?

답변4

grep을 재귀적으로 사용하여 디렉토리의 모든 것을 찾을 수 있습니다

cd /path/to/dir/*
grep -r "ARD"

아니면 단순히

grep -r -l "ARD" /path/to/dir/*

원천: http://www.cyberciti.biz/faq/howto-recursively-search-all-files-for-words/

awk를 사용하여 csv 파일을 검색할 수도 있습니다. 예:

awk -F, '$X == ARD' HW

X는 열 번호를 나타내고, ARD는 키워드, HW는 위의 csv 파일을 나타냅니다.

원천:https://stackoverflow.com/questions/2373885/searching-a-csv-file-using-grep

이것은 또 다른 옵션으로도 사용 가능합니다

grep '^\([^|]*|\)\{X\}ARD|' HW

원천:http://www.unix.com/unix-for-dummies-questions-and-answers/123978-grepping-특이적-column.html

관련 정보