私の主なファイル(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