gpt4 book ai didi

awk 搜索另一个文件中的字段

转载 作者:行者123 更新时间:2023-12-05 00:38:11 24 4
gpt4 key购买 nike

我需要从第二个文件中的一个文件中搜索字段。想知道 awk 是否是正确的解决方案

文件 1

one
two

文件 2
something one
balh one
blah two
blah two

所需的输出
one ["something one", "blah one"]
two [ "blah two" , "blah two"]

我希望我可以在 awk 中使用 awk ,在第二个中搜索每一行并构建输出。

最佳答案

一次调用 awk 就足够了

awk '
FNR == NR {
# reading file1
values[$1] = ""
next
}
{
# reading file2
for (elem in values)
if ($0 ~ elem)
if (values[elem] == "")
values[elem] = "\"" $0 "\""
else
values[elem] = values[elem] ", \"" $0 "\""
}
END {
for (elem in values)
print elem " [" values[elem] "]"
}
' file1 file2

像Ruby这样的东西可能更容易
keys = File.readlines("file1").collect {|line| line.chomp}
values = Hash.new {|h,k| h[k] = []}
File.foreach("file2") do |line|
line.chomp!
keys.each do |key|
if line.include?(key)
values[key] << line
end
end
end
values.each {|key,value| puts key + " " + value.inspect}

关于awk 搜索另一个文件中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5958083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com