awk在另一个文件中搜索一个字段
发布时间:2020-12-14 00:51:21 所属栏目:Linux 来源:网络整理
导读:我需要从第二个文件中的一个文件中搜索字段.想知道awk是否是正确的解决方案 档案1 onetwo 档案2 something onebalh oneblah twoblah two 要求的输出 one ["something one","blah one"]two [ "blah two","blah two"] 我希望我可以在awk中使用awk,在第二行中搜
我需要从第二个文件中的一个文件中搜索字段.想知道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} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |