gpt4 book ai didi

bash - 根据 key 从文件中读取最近的条目

转载 作者:行者123 更新时间:2023-11-29 09:17:59 25 4
gpt4 key购买 nike

输入文件,fruits.txt:

JAN,APPLE 
FEB,MANGO
JAN,ORANGE
MAR,APPLE
FEB,APPLE

预期输出文件:

MAR,APPLE
FEB,APPLE
JAN,ORANGE

为了得到上面的输出,使用了下面的代码:

#!/bin/sh

declare -A m_arr

cat fruits.txt > /tmp/ID.part

while read line
do
Month=$(echo $line | cut -d, -f1)
Fruits=$(echo $line | cut -d, -f2)
m_arr[${Month}]=${Fruits}
done < /tmp/ID.part

for i in ${!m_arr[@]}
do
echo "$i,${m_arr[$i]}"
done

这适用于输入文件中的少量数据。我有 200 000 个条目并观察到 ​​cut 命令非常慢。也尝试使用 awk,但没有得到更好的结果。我的要求是从 row1 读取文件,key 为 column1。我需要更新每个 key 的条目。

最佳答案

我认为使用 Awk 可以很容易地完成此操作,您只需在 $2 中散列 $1 的值带有 , 分隔符的文件

awk -v FS=, -v OFS=, '{key[$1]=$2; next}END{for (i in key) print i,key[i]}' file

此外,如果你想在处理一百万行文件时加快速度,你可以更改本地化设置以在解析时加快执行速度,你可以在本地将 LC_ALL=C 传递给命令。参见 Stéphane Chazelas's answer on what "LC_ALL=C" does?

关于bash - 根据 key 从文件中读取最近的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48022484/

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