我必须从一个文件中对每一行进行 grep 并计算另一个文件中的出现次数。两个模板文件的内容是:
模板服务:
CO_SERVICE_SVCID268435463;Main Service
CO_FT_NON_BESTOWED_SVCID268435464;Bestowed Service
CO_SFT_NON_BESTOWED_SVCID268435465;Non Bestowed Service
模板1(由第一个文件本身制成):
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
为什么还要加上前面的总和?