我有2组数据,我需要将它们重叠以获取所需运行的最终列表
我尝试过grep
和awk 'NR==FNR{...}!a[$0]'
,但这并不能给我正确的输出结果
grep -vf goodruns.txt idontneed.txt
和
awk 'NR==FNR{a[$0]=1;next}!a[$0]'
输入:goodruns.txt,带有数字列表:
09987
09989
09991
09995
09996
idontneed.txt,其中包含数字列表:
09987
09988
09991
09993
09995
09997
所需的输出:
09989
09997
答案 0 :(得分:1)
如果您要获取goodruns.txt
中存在的行列表,而idontneed.txt
中不存在的行列表,这正是comm
的作用。
使用bash,sort和comm的解决方案可能是:
comm -2 -3 <(sort goodruns.txt) <(sort idontneed.txt)
如果您更喜欢使用awk或grep,则只需反转文件即可使用它们:
grep -vf idontneed.txt goodruns.txt
awk 'NR==FNR{a[$0]=1;next}!a[$0]' idontneed.txt goodruns.txt
答案 1 :(得分:0)
您的问题对我来说不是很清楚,但假设:a)您只希望第一个文件中的行不在第二个文件中,并且b)您的预期输出是错误的,因为09997没有出现在goodruns.txt
,它应该是09996,它可以:
$ join -v1 goodruns.txt idontneed.txt
09989
09996
这确实需要对文件进行排序,即样本的类型。
答案 2 :(得分:0)
您的TradingSystem.QuoteUpdate
工作正常,只需确保先拥有awk
idontneed