Text-Processing

使用 grep 獲取多個字元串的出現

  • October 26, 2022

我在下面有我的主文件(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

但這將產生所有帶有突出顯示數字的字元串列。有人可以幫助我產生我實際需要的輸出。

那應該工作:

╰─$ 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

引用自:https://unix.stackexchange.com/questions/722471