gpt4 book ai didi

shell - grep 另一个文件中一个文件的每一行

转载 作者:行者123 更新时间:2023-12-04 04:40:36 25 4
gpt4 key购买 nike

我必须从文件中的每一行 grep 一个并计算另一个文件中的出现次数。两个模板文件的内容是:

模板服务:

CO_SERVICE_SVCID268435463;Main Service
CO_FT_NON_BESTOWED_SVCID268435464;Bestowed Service
CO_SFT_NON_BESTOWED_SVCID268435465;Non Bestowed Service

template1(由第一个文件本身制成):
CO_SERVICE_SVCID268435463
CO_FT_NON_BESTOWED_SVCID268435464
CO_SFT_NON_BESTOWED_SVCID268435465

其中包含搜索字符串(即每个不同的行)。
还有一个文件(text3.txt)有 1,00,000+ 行,其中包含上述三个字符串中的任何一个(template_service 的内容也可能有所不同,不是固定的)。

这是我写的代码:
file="/somepath/etc/template_service.txt"

while IFS= read -r line
do

echo "$line" | cut -d';' -f1 >>template1.txt
echo "$line" | cut -d';' -f2 >>template2.txt
grep -c -f template1.txt text3.txt >>final_count.txt <--problematic statement showing incorrect count

done <"$file"

这应该计算 text3.txt 中文件一中每一行的出现次数,并在 final_count.txt 中打印结果
这将输出显示为:
60000
120000
180000

但输出应该是:
60000
60000
60000

为什么还要加上之前的总和?

最佳答案

Why is it adding the previous sum as well?



因为这个:
echo "$line" | cut -d';' -f1 >>template1.txt

将其更改为:
echo "$line" | cut -d';' -f1 >template1.txt

应该解决这个问题。使用 >>导致将行附加到文件,从而将先前的计数添加到结果中。

关于shell - grep 另一个文件中一个文件的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18959800/

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