Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Uran 13 Dubna 2011, 10:30:57

Název: test a regex
Přispěvatel: Uran 13 Dubna 2011, 10:30:57
Potrebuji vypsat obsah doc souboru a jejich nazvy obsahujici urcity regex. Nasledujici skript mi nefunguje. Jde ve fci test pouzivat regex?

Kód: [Vybrat]
find . -iname '*.doc' | while read F
do if [ "`catdoc "$F" | egrep -o -m 1 MULCOA.*45.*0,045`" = "MULCOA.*45.*0,045" ]
then echo "=====Zacatek====="
echo "$F"
catdoc "$F"
echo "=====Konec====="
fi
done

Nic nevypise.

Retezec ktery hledam pomoci egrep-u je nasledujici (cele to komplikuje to ze kolega, ktery to pise nekdy pouziva mezeri misto tab a jine tipograficke pra....).
Kód: [Vybrat]
$ catdoc RECOM.doc/test.doc | egrep -o -m 1 MULCOA.*45.*0,045
MULCOA 45 - 0,045

Název: Re: test a regex
Přispěvatel: GdH 13 Dubna 2011, 11:26:00
Co třeba takto ta podmínka:

Kód: [Vybrat]
if [[ `catdoc "$F" | egrep -m 1 "MULCOA.*45.*0,045"` ]]
přepínač -o by tam byl v tomto případě zbytečně
Název: Re: test a regex
Přispěvatel: daysleeper 13 Dubna 2011, 11:32:59
nebo proste
Kód: [Vybrat]
if catdoc "$F" | egrep -o -m 1 "MULCOA.*45.*0,045"; then
Název: Re: test a regex
Přispěvatel: GdH 13 Dubna 2011, 11:42:34
nebo proste
Kód: [Vybrat]
if catdoc "$F" | egrep -o -m 1 "MULCOA.*45.*0,045"; then

Máš recht, ale raději:

Citace
if catdoc "$F" | egrep -q -m 1 "MULCOA.*45.*0,045"; then
Název: Re: test a regex
Přispěvatel: Uran 13 Dubna 2011, 13:32:58
Dekuji uz to funguje.

Co vsak catdoc nezvlada jsou dokumenty ulozene "metodou" fast saved. Zkousel jsem podobny programek (antiword), ale je na tom obdobne.
Neznate nejakou alternativu, pripadne jde pouzivat openoffice pres CLI?