我的主文件(log1.txt)字符串如下。
T202210010515.XX.old:2022-10-01 10:57:56<Other Texts>975673849<0ther Texts>975673849
T202210010515.XX.old:2022-10-01 10:59:56<Other Texts>975673449<0ther Texts>975673449
T202210010515.XX.old:2022-10-01 10:57:58<Other Texts>975673849<0ther Texts>975673849
T202210010515.XX.old:2022-10-01 10:59:51<Other Texts>975673849<0ther Texts>975673849
T202210010515.XX.old:2022-10-01 10:57:52<Other Texts>975673849<0ther Texts>975673849
T202210010515.XX.old:2022-10-01 10:59:59<Other Texts>975673449<0ther Texts>975673449
每套都以 T202210* 开头。我需要 grep 该数字并返回该数字出现的行数。我有另一个辅助文件,其中包含我需要搜索的所有数字(numbers.txt)。这是我需要的输出,数字和每个数字的行数。
975673849 -4
975673449 -2
这是我的尝试。
grep -f numbers.txt log1.txt
但这将产生带有突出显示数字的所有字符串行。有人可以帮助我产生我实际需要的输出吗?
答案1
那应该有效:
╰─$ cat log1.txt 130 ↵
T202210010515.XX.old:2022-10-01 10:57:56<Other Texts>975673849<0ther Texts>975673849
T202210010515.XX.old:2022-10-01 10:58:56<Other Texts>975673849<0ther Texts>975673849
╰─$ cat numbers.txt
975673849
975673449
╰─$ while read -r line; do echo "$line" && cat log1.txt | grep -c "$line" ; done < numbers.txt
975673849
2
975673449
0