Mam FILE_A, który ma ponad 300 000 linii i FILE_B, który ma ponad 30 milionów linii. Utworzyłem skrypt Bash, który przechwytuje każdą linię w pliku FILE_A w pliku FILE_B i zapisuje wynik polecenia grep w nowym pliku.
Cały ten proces trwa ponad 5 godzin.
Jak mogę poprawić wydajność mojego skryptu?
Używam grep -F -m 1
jako polecenia grep. FILE_A wygląda następująco:
123456789
123455321
a FILE_B wygląda następująco:
123456789,123456789,730025400149993,
123455321,123455321,730025400126097,
Tak więc w Bash mam while
pętlę, która wybiera następną linię w FILE_A i greps w FILE_B. Kiedy wzorzec zostanie znaleziony w PLIKU_B, zapisuję go w pliku wynikowym.txt.
while read -r line; do
grep -F -m1 $line 30MFile
done < 300KFile