3.2 GBの既存の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
それぞれ「この行を印刷しない」または「この行を印刷」として解釈されます。0
1
{ ... }