Tôi có FILE_A có hơn 300.000 dòng và FILE_B có hơn 30 triệu dòng. Tôi đã tạo một tập lệnh Bash greps từng dòng trong FILE_A trong FILE_B và ghi kết quả của grep vào một tệp mới.
Toàn bộ quá trình này mất hơn 5 giờ.
Làm cách nào để cải thiện hiệu suất của tập lệnh?
Tôi đang sử dụng grep -F -m 1
như lệnh grep. FILE_A trông như thế này:
123456789
123455321
và FILE_B giống như thế này:
123456789,123456789,730025400149993,
123455321,123455321,730025400126097,
Vì vậy, với Bash, tôi có một while
vòng lặp chọn dòng tiếp theo trong FILE_A và greps nó trong FILE_B. Khi mẫu được tìm thấy trong FILE_B, tôi viết nó vào tệp result.txt.
while read -r line; do
grep -F -m1 $line 30MFile
done < 300KFile