여러 조건으로 행 필터링

여러 조건으로 행 필터링

3.2GB의 기존 csv 파일에서 구분 기호를 사용하여 새 csv 파일을 생성하려고 합니다 ,. 그러나 내가 얻는 출력은 0B csv 파일입니다.

조건은 lang = ‘en’"Corona" 또는 "Covid"라는 단어가 포함되고 20 이상인 verified users = True모든 트윗을 필터링하는 것입니다.retweet_count

열 이름은 다음과 같습니다.

     1  status_id
     2  user_id
     3  created_at
     4  screen_name
     5  text
     6  source
     7  reply_to_status_id
     8  reply_to_user_id
     9  reply_to_screen_name
    10  is_quote
    11  is_retweet
    12  favourites_count
    13  retweet_count
    14  country_code
    15  place_full_name
    16  place_type
    17  followers_count
    18  friends_count
    19  account_lang
    20  account_created_at
    21  verified
    22  lang

다음은 내가 시도한 코드입니다.

grep 'Corona' | 'Covid' > awk -F',' '$22=='en' && $13>=20 && $>21 == True {print,}' > output.csv

어떤 도움이라도 대단히 감사하겠습니다.

답변1

열 5가 트윗 텍스트라고 가정하면 다음 awk명령이 도움이 될 것입니다.

awk -F',' '$5 ~ /Corona|Covid/ && $22=="en" && $13>=20 && $21=="True"' > output.csv

설명하다:

  • $5 ~ /Corona|Covid/Corona: 5열에 OR이 포함되어 있는지 확인하세요 Covid. $5 ~ /[Cc]orona|[Cc]ovid/각 단어의 첫 글자의 대소문자를 무시 하는 데 사용됩니다 .
  • 다른 모든 조건은 이해하기 쉬워야 합니다.
  • 결합된 부울 테스트는 0(=false) 또는 1(=true)로 평가되며 그 밖의 모든 규칙을 awk각각 "이 줄을 인쇄하지 않음" 또는 "이 줄을 인쇄"로 해석합니다.01{ ... }

관련 정보