我正在尝试从 3.2 GB 的现有 csv 文件生成新的 csv 文件,并,
使用分隔符。但是,我得到的输出是 0B csv 文件。
条件是过滤所有lang = ‘en’
包含“Corona”或“Covid”一词且verified users = True
且retweet_count
大于或等于20的推文
以下是列名称:
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/
:检查第 5 列是否包含Corona
ORCovid
。用于$5 ~ /[Cc]orona|[Cc]ovid/
忽略每个单词中首字母的大小写。- 所有其他条件都应该易于理解。
- 组合布尔测试将计算为
0
(=false) 或1
(=true),并将任何规则或规则之外的规则分别awk
解释为“不打印此行”或“打印此行”。0
1
{ ... }