grep -f filtro filedagreppare
solo che il filtro è grande oltre 1000 righe e filedagreppare oltre 4000
capite che le performance non sono il massimo (siamo nell'ordine di 3 minuti)
Esiste un modo più performante di eseguire la stessa ricerca (magari con awk o perl, ma che non sia troppo complesso)?
Capisco che è una ricerca di complessità computazionale quadratica, ma forse si può ottimizzare considerando che la struttura del file sorgente e quello destinazione sono conosciuti:
sorgente:
1000 righe simini a
Codice: Seleziona tutto
aaa_base [^ ]\+ [^ ]\+ [0-9]\+
xorg-server-xephyr [^ ]\+ [^ ]\+ [0-9]\+_slack14.1
mentre il file da greppare è /var/lib/slackpkg/pkglist, quindi
Codice: Seleziona tutto
...
patches xorg-server-xephyr 1.14.3 i486 3_slack14.1 xorg-server-xephyr-1.14.3-i486-3_slack14.1 ./patches/packages txz
slackware aaa_base 14.1 i486 1 aaa_base-14.1-i486-1 ./slackware/a txz
...
Codice: Seleziona tutto
slackware aaa_base 14.1 i486 1 aaa_base-14.1-i486-1 ./slackware/a txz
patches xorg-server-xephyr 1.14.3 i486 3_slack14.1 xorg-server-xephyr-1.14.3-i486-3_slack14.1 ./patches/packages txz
Avete qualche soluzione per fare l'operazione più velocemente possibile?
Grazie