내 주요 파일(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