gpt4 book ai didi

linux - awk 的多输入文件

转载 作者:太空狗 更新时间:2023-10-29 11:43:26 24 4
gpt4 key购买 nike

我有两个 CSV 文件,第一个如下所示:

文件 1:

3124,3124,0,2,,1,0,1,1,0,0,0,0,0,0,0,0,1106,11
6118,6118,0,0,,0,0,1,0,0,0,0,1,1,1,1,1,5156,51
6679,6679,0,0,,1,0,1,0,0,0,0,0,1,0,1,0,1106,11
5249,5249,0,0,,0,0,1,1,0,0,0,0,0,0,0,0,1106,13
2658,2658,0,0,,1,0,1,1,0,0,0,0,0,0,0,0,1197,11
4322,4322,0,0,,1,0,1,1,0,0,0,0,0,0,0,0,1307,13

文件 2:

7792,1307,2012-06-07,,,,
5249,4001,2016-07-02,,,,
6001,1334,2017-01-23,,,,
2658,4001,2009-02-09,,,,
9279,1326,2014-12-20,,,,

我需要的:如果 file2 中的 $2 = 4001,则必须匹配 file2$1对于 file1,如果 $18 in file1 = 1106 对于匹配的 $1 然后打印那条线。

预期输出:

5249,5249,0,0,,0,0,1,1,0,0,0,0,0,0,0,0,1106,13

我已经尝试了以下方法,但没有成功。

awk 'NR=FNR {A[$1]=$1;next} {print $1}'

P.S: 文件是压缩的,所以我必须使用zcat命令

最佳答案

我会尝试这样的事情:

$ cat t.awk
BEGIN { FS = "," }

# Processing first file
NR == FNR && $18 == 1106 { a[$1] = $0; next }

# Processing second file
$2 == 4001 && $1 in a { print a[$1] }


$ awk -f t.awk file1.txt file2.txt
5249,5249,0,0,,0,0,1,1,0,0,0,0,0,0,0,0,1106,13

关于linux - awk 的多输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31583466/

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