Newsgroup: it.comp.os.linux.software
Titolo: Ricerca stringa in files Open Office

Salve, 
ho diversi file ( lettere, fax, fatture ) fatte con Open Office
e dovrei ogni tanto cercare i files contenenti un particolare nome. 
Prima con Star Office
bastava usare il grep e avevo subito il file contenente il nome da cercare.
Ora Open Office salva in un formato diverso, credo compresso, e il grep non
funziona. Sapete come fare una ricerca su un gruppo di file per trovare
quello che contiene ad esempio il nome Pippo? Sull'help di O.O non ho
trovato niente, solo ricerche sul documento aperto e anche con il grep non
ho risultato. Devo ricercare il nome in una directory contenetnte circa 200
file, non posso certo aprirli uno ad uno.
Grazie per l'aiuto.
Andrea
-- 
------------------------------
http://digilander.libero.it/andreatti/
per rispondermi togli i +++

 Andrea
Ciao
-- 
Emiliano Grilli
Linux user #209089 
http://www.emillo.net

 zgrep?
Casomai zipgrep.
Ciao
  David
-- 
<d.santinoli presso mi. flashnet. it>

 David


   David
Scusate forse mi sono spiegato male, ho una serie di file fatti con
OpenOffice  *.sxw *.sxc  e devo trovare tutti i file che contengono il nome
PIPPO.
ho provato grep, zgrep , zipgrep  ( gli ultimi due credo siano riferiti a
file zippati) il problema credo sia nel formato in cui OpenOffice salva i
file. Con StarOffice se facevi un  vi nomefile vedevi oltre a tanti simboli
strani il testo scritto in chiaro e quindi con un semplice grep individuavi
la lista dei file che contenevano la stringa ora se fai un vi nomefile è
totalmente incomprensibile, quindi Open Office deve avere un suo
particolare modo di salvare e comprimere i file dato che lo stesso file
occupa meno spazio salvandolo con OpenOffice rispetto a StarOffice.
Se qualcuno ha suggerimenti...
Grazie


 Se qualcuno ha suggerimenti...
Ti sono stati suggeriti zgrep e zipgrep perche' i file .sx* non sono 
altro che archivi zippati contenenti in file separati contenuto, stile, 
immagini, ecc.
Prova ad aprirne uno, e vedrai che trovi il file del contenuto.
-- 
Renato Ramonda
_______________________________
Togli TOGLIMI se vuoi scrivermi

 
Ok ho visto, ma dovendo fare una ricerca su circa 500 600 files che devo
aprirli tutti? Ho provato a creare un script che faccia la ricerca ma mi
viene fuori un output che fa un casino a bestia, quello che servirebbe come
output sarebbero solo i nomi dei file che contengono una particolare
stringa.
Grazie comunque a tutti guarderò se nel fine settimana riesco a risolverlo.
Se comunque qualcuno ha una soluzione rapida o un link di aiuto ne sarei
felice.


 particolare stringa.
find . -iname *.estensione -exec zgrep -l "testo da cercare" "{}" \;
occhio, pero', che probabilmente ci mettera' una mezza eternita'.
-- 
I carabinieri fermano due contadini che tornano dal macello:
"Che trasportate?".  "Un mezzo maiale".  "Vivo o morto?".
		-- Da it.hobby.umorismo

 find . -iname *.estensione -exec zgrep -l "testo da cercare" "{}" \;
Fantastico :)
Per funzionare, almeno nel mio sistema, ho dovuto mettere anche le
virgolette attorno ad "*.estensione". 


Il Thu, 27 Nov 2003 21:07:58 +0000, Andrea ha scritto:
Scusatemi ancora...
Ho notato che in RedHat 8 la soluzione proposta da Zed funziona benissimo,
mentre non funziona in RedHat 9 (versioni diverse delle librerie?) -
quindi non si può dire che sia una soluzione universale (anche se
elegante). Uno scriptino tutto su una riga (grazie giuSerpe!):
for i in `find mia-dir -name '*.sxw'`; do unzip -c $i content.xml | grep
-i testo-da-cercare && echo 'trovato in $i'; done
Nella chat di openoffice mi hanno inoltre indirizzato qui:
http://oootools.free.fr/fooox/


 -i testo-da-cercare && echo 'trovato in $i'; done
mmm
che succede se, nel mio find ci metti zipgrep invece che zgrep?
-- 
Quando ero piccolo mia nonna mi porto' a mangiare in una trattoria
all'aperto.  Comincio' a piovere.  Ci misi tre ore a finire il brodo.
		-- Mario Zucca

 che succede se, nel mio find ci metti zipgrep invece che zgrep?
Quando matcha fa vedere "content.xml" invece del nome del file


 Quando matcha fa vedere "content.xml" invece del nome del file
???
io intendevo una cosa del genere
find . -iname "*.estensione" -exec zipgrep -l "testo da cercare" "{}" \;
-- 
"La bruttezza ha un vantaggio sulla bellezza: dura."
		-- Daniel Mussy

 find . -iname "*.estensione" -exec zipgrep -l "testo da cercare" "{}" \;
[ emillo@redmillo:]~ $ find . -iname "*.sxw" -exec zipgrep -l "emi" "{}" \;
content.xml
content.xml
content.xml
content.xml
content.xml
[ emillo@redmillo:]~ $ 
:-/


 :-/
Onestamente non capisco perche' si comporti cosi' ma prova anche:
find . -iname "*.sxw" -exec strings {} \; | grep emi
e dimmi  se funziona (anche se  cosi' com'e' messo non  scrive il nome
del file in cui ha beccato l'occorrenza[1])
[1] Una cosa che mi piacerebbe (ma non funziona) sarebbe:
find . -iname "*.sxw" -exec strings {} | grep emi && echo {} \;
Non riesco  a fare prendere al  -exec di find un  comando composito di
questo tipo... domani magari  guardero' meglio, intanto se qualcuno ha
dei suggerimenti...
-- 
Sono un servitore del Fuoco Segreto, e reggo la fiamma di Anor.
A nulla ti servira' il fuoco oscuro, fiamma di Udun.
Torna nell'Ombra! Non puoi passare.

 del file in cui ha beccato l'occorrenza[1])
Si, infatti questo funziona ma sbrodola un bel po' di output e non è
granchè utile allo scopo...
Sulla chat di openoffice abbiamo messo insieme una soluzione con unzip:
http://nathanvi.it/openoffice/index.php?page=CercaContenutoFile
Questa mi sembra funzionare sempre, magari se la provi o vuoi suggerire
modifiche o migliorie (puoi anche editare direttamente il wiki),
ovviamente sono ben accette :)
Ciao


 GNU/Linux sa...):
LOL


 dei suggerimenti...
for f in *.sxw ; do
  unzip -c $f content.xml | grep -q trave && echo $f matches || echo $f doesn\'t match
done
se hai sottodirectory annidate etc etc
for f in `find |grep sxw$ ` ; do
  ...
done
-- 
ANNOYED BY TINY GNATS. ENGAGING VALIUM NOZZLE. U-37.

 done
  come al solito quando c'e' puzza di windows, ocio agli spazi nei
  nomi dei files!
  ti propongo quindi una alternativa (assumendo che in fondo sapere
  quali files non matchano non importi granche')
------------------------------------------------------------------------
#!/bin/sh
# in questo modo, rubato da uno script di Jeff Miller e Hrvoje Niksic,
# tutta una line di output di find va in $f
find "$1" -name "*.sxw" -print | while read f; do
  # "$f" con gli apici e' un unico token!'
  unzip -c "$f" content.xml | grep -q "$2" && echo $f
done
------------------------------------------------------------------------
-- 
AIRCRAFT. BOMBED. SINKING. U-481.

   # "$f" con gli apici e' un unico token!'
Grazie, un consiglio prezioso. Finalmente un modo per evitare di
ridefinire IFS e gestire files con spazi nel nomefile.
Ciao


 Andrea
Cerca su 
freshmeat.net
 l'applicazione loook.py, č un programmino scritto 
in pyton per gtk che fa quello che stai chiedendo...
:-)
Andrea
-- 
__________________________
togli NOSPAM per rispondermi...