【发布时间】:2016-01-13 16:20:32
【问题描述】:
在比较一个文件的内容与另一个文件的内容时,我在使用 AWK 时遇到了一些困难。
文件 1.txt
142317216-|--|-tree-|-apple-|-|--
150232802-|--|-plant-|-sugar-|-granular|--
153947334-|--|-flower-|-daisy-|-single|--
153188646-|--|-soil-|-earth-|-|--
文件2.txt
apple,99817
sugar,75844
daisy,34566
earth,75544
使用 "-" 作为分隔符,我可以从 第 7 列中提取信息。
awk 'BEGIN { FS="-";} {print $7;}' file1.txt
输出
apple
sugar
daisy
earth
我的完整命令检查 file1,txt 中的 column7 是否存在于 file2.txt 中。
awk 'BEGIN {FS="-";} NR==FR{a[$1]=$7;next} {FS=",";} $1 in a ' file1.txt file2.txt
获取第 7 列,然后将分隔符更改为“,”,并根据变量 a 检查 $1。
这没有显示任何结果,我正在努力理解语法以了解原因。谁能给我一些指示。
【问题讨论】:
-
你想要
NR==FNR中的双等号(比较,而不是赋值)。提名关闭为简单的错字。 -
@tripleee 不仅仅是笔误,FS mid-script 设置错误,读取第二个文件第一行后生效,文件顺序错误.这个问题有明确的要求、示例输入和显示的尝试,因此恕我直言,它不应该被关闭,它需要添加的只是预期的输出。
标签: awk