如果特定列中句子中的单词与另一列匹配?
If word in sentence in a particular column, match with another column?
文本文件是这样的
Year, Name. Date, rating, username, tweet
2009, John, 02/03/09, positive, @johnnyboy, Bob is my best friend
2010, Bob, 01/09/10, positive, @Bob, Bob is cool
2010, Bob, 05/03/10, positive, @Bob, This tweet shouldn't count
我希望能够打印所有包含带有单词“Bob”的推文的日期(请记住,用户名可以是 @Bob
,这是我不想要的。
所以输出应该是
02/03/09
01/09/10
到目前为止,我的尝试是:
awk -F',' '{IGNORECASE = 1} {ARGC=1} =="Bob" {print }' Data.txt
我知道明显的错误是 ==
只会 return 推文只是 Bob
的日期,但我的尝试都是徒劳的,这是我最接近的可以到达。有没有其他方法可以使用 awk
?
谢谢
推文栏可能包含逗号(,),不能直接使用$6:
awk -F',' '{IGNORECASE = 1} {ARGC=1} {col3=;=====""; if (/Bob/) print col3}' Data.txt
col3=
将第三列保存在变量col3
中
=====""
删除了前 5 列
(/Bob/) 将其余列与正则表达式“Bob”进行比较,因为您可能会收到类似 Hi, Bob is my best friend
的推文
也许这行得通
命令:
grep -w 'Bob' abc.txt | awk -F',' '{print }'
输出:
02/03/09
01/09/10
如果需要任何更改,让我知道可以解决它
文本文件是这样的
Year, Name. Date, rating, username, tweet
2009, John, 02/03/09, positive, @johnnyboy, Bob is my best friend
2010, Bob, 01/09/10, positive, @Bob, Bob is cool
2010, Bob, 05/03/10, positive, @Bob, This tweet shouldn't count
我希望能够打印所有包含带有单词“Bob”的推文的日期(请记住,用户名可以是 @Bob
,这是我不想要的。
所以输出应该是
02/03/09
01/09/10
到目前为止,我的尝试是:
awk -F',' '{IGNORECASE = 1} {ARGC=1} =="Bob" {print }' Data.txt
我知道明显的错误是 ==
只会 return 推文只是 Bob
的日期,但我的尝试都是徒劳的,这是我最接近的可以到达。有没有其他方法可以使用 awk
?
谢谢
推文栏可能包含逗号(,),不能直接使用$6:
awk -F',' '{IGNORECASE = 1} {ARGC=1} {col3=;=====""; if (/Bob/) print col3}' Data.txt
中col3=
将第三列保存在变量col3
=====""
删除了前 5 列(/Bob/) 将其余列与正则表达式“Bob”进行比较,因为您可能会收到类似
的推文Hi, Bob is my best friend
也许这行得通
命令:
grep -w 'Bob' abc.txt | awk -F',' '{print }'
输出:
02/03/09
01/09/10
如果需要任何更改,让我知道可以解决它