Vorrei elencare tutti gli Open Document in un dato path che contengono una data stringa. Questa è la situazione:
Codice: Seleziona tutto
$ ls test/*.od*
test/drop.odt test/eyedrops.odt test/glaucoma.odt test/Senzanome1.ods
$ for f in test/*.od* ; do unzip -p $f content.xml | grep -q glaucoma && echo $f; done
test/glaucoma.odt
test/Senzanome1.ods
ho provato
Codice: Seleziona tutto
cd test
for f in $(ls -R | grep -Ei ".*\.OD."); do
unzip -p "$f" content.xml | grep -q $String && echo "$f"
done
e così sono tornato a find (da cui ero partito) ma non ne vengo a capo:
Codice: Seleziona tutto
$ find -L test -iname *.od* -exec unzip -p '{}' content.xml \;| grep -c glaucoma
2
Se per questo scopo esiste un tool da CLI già pronto sono lieto di apprenderlo, però in questo caso, re-inventare la ruota sarebbe istruttivo ( per me )