gpt4 book ai didi

awk - awk 的第一个和第二个输入文件是否可能有不同的行为?

转载 作者:行者123 更新时间:2023-12-02 05:43:04 26 4
gpt4 key购买 nike

例如,假设我运行以下命令:

gawk -f AppendMapping.awk Reference.tsv TrueInput.tsv

假设文件名会改变。在遍历第一个文件时,我想创建一个映射。

map[$16]=$18

在遍历第二个文件时,我想使用映射。

print $1, map[$2]

实现此行为的最佳方式是什么(即,每个输入文件的不同行为)?

最佳答案

您可能知道 NR 存储当前行号;您可能知道也可能不知道,它是累积的 - 它不会在文件之间重置。 FNR,另一方面,特定于文件,因此您可以使用这两个来查看您是否在第一个文件中(超出第二个文件您需要保留自己的计数器) .

# In case you want to keep track of the file number
FNR == 1 { fileno++ }*emphasized text*

NR == FNR {
# First file
}
NR != FNR {
# Second or later file
}

您还可以在 BEGIN block 中使用 getline 手动循环它。

BEGIN {
file = ARGV[1]
while(getline < file) {
# Process line
}
delete ARGV[1]
}

关于awk - awk 的第一个和第二个输入文件是否可能有不同的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691080/

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