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
-
Potrebuji vypsat obsah doc souboru a jejich nazvy obsahujici urcity regex. Nasledujici skript mi nefunguje. Jde ve fci test pouzivat regex?
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....).
$ catdoc RECOM.doc/test.doc | egrep -o -m 1 MULCOA.*45.*0,045
MULCOA 45 - 0,045
-
Co třeba takto ta podmínka:
if [[ `catdoc "$F" | egrep -m 1 "MULCOA.*45.*0,045"` ]]
přepínač -o by tam byl v tomto případě zbytečně
-
nebo proste
if catdoc "$F" | egrep -o -m 1 "MULCOA.*45.*0,045"; then
-
nebo prosteif catdoc "$F" | egrep -o -m 1 "MULCOA.*45.*0,045"; then
Máš recht, ale raději:
if catdoc "$F" | egrep -q -m 1 "MULCOA.*45.*0,045"; then
-
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?