gpt4 book ai didi

awk - awk 命令中 "a"的含义?

转载 作者:行者123 更新时间:2023-12-05 08:34:50 25 4
gpt4 key购买 nike

我在一个脚本中有一个 awk 命令,我正在尝试让它工作,但我不明白“a”的含义:

awk 'FNR==NR{ a[$1]=$0;next } ($2 in a)' FILELIST.TXT FILEIN.* > FILEOUT.*

我对使用命令行还很陌生,所以我只是想弄明白,谢谢。

最佳答案

a 是一个关联数组。

a[$1] = $0;

将行中的第一个单词$1作为数组中的索引,将整行$0作为值进行存储。它为第一个文件执行此操作(而文件记录号等于总记录号)。 next 命令意味着它在处理第一个文件时不处理脚本的其余部分。

对于其余的数据文件,它评估:

($2 in a)

如果找到 $2 中的单词,则打印该行。这使得将 $0 存储在 a 中相对昂贵,因为它存储了整个文件的副本(如果文件的每一行只有一个单词,则可能存储两次)。做 a[$1]++ 甚至 a[$1] = 1 更常规也足够了。

给定 FILELIST.TXT

ABC The rest
DEF And more

给定的 FILEIN.1 包含:

Word ABC and so on
Grow FED won't be shown
This DEF will be shown
The XYZ will be missing

输出将是:

Word ABC and so on
This DEF will be shown

关于awk - awk 命令中 "a"的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19053495/

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