我有一个每行包含 1 个字符串的输入文件
input.txt(实际有25k行)
one
two
three
然后我有一个包含许多文件的目录(实际上有50个文件)
2022-04-01.csv
stuff;one;more_stuff
stuff;one;more_stuff
2022-04-02.csv
stuff;one;more_stuff
stuff;two;more_stuff
2022-04-03.csv
stuff;two;more_stuff
stuff;tree;more_stuff
stuff;tree;more_stuff
我需要提取每个模式出现的最早日期。所以在这种情况下的输出将是
one:2022-04-01.csv
two:2022-02-02.csv
three:2022-04-03.csv
我可以使用
grep -l one *.csv
获取模式出现的唯一文件列表,但不适用于多个模式,也不适用于单个最早日期。如果我只能获取每个模式出现的文件列表,那么我可以手动提取我认为的最早日期,但我确定必须有 1 个班轮来完成这一切?
使用任何 awk(未设置):
awk '
BEGIN { FS=OFS=";" }
NR==FNR {
vals[$0]
next
}
$2 in vals {
print $2, FILENAME
delete vals[$2]
}
' input.txt *.csv