bash - grep-vf बहुत बड़ी फ़ाइलों के साथ धीमा है



performance shell (1)

संबंधित पोस्ट में इनियन के समाधान के आधार पर, इस awk कमांड को आपकी समस्या को हल करना चाहिए:

awk 'FNR==NR {hash[$0]; next} !($0 in hash)' filter.txt data.txt > op.txt

मैं file.txt से फिल्टर डेटा को filtar.txt फ़ाइल में संग्रहीत पैटर्नों का उपयोग कर रहा हूं। नीचे की तरह,

grep -v -f filter.txt data.txt > op.txt

यह grep 30 से 40-40 लाइनों के लिए filter.txt में 10-15 मिनट से अधिक और data.txt में ~ 300K लाइन लेता है।

क्या यह तेज करने का कोई तरीका है?

data.txt

data1
data2
data3

filter.txt

data1

op.txt

data2
data3

Codeforester द्वारा प्रदत्त समाधान के साथ यह काम करता है, लेकिन जब filter.txt खाली है तो विफल हो जाता है।





grep