Portál AbcLinuxu, 20. dubna 2024 17:53


Dotaz: Úprava textu pomocí shellu

16.2.2006 12:17 Rover | skóre: 10
Úprava textu pomocí shellu
Přečteno: 163×
Odpovědět | Admin
Dobrý den, mám text např. (bez uvozovek)

" mail@domain1.com Ma-ail.domain2.com Mailer@domain3.com"

-v textu může být nekonečno mailovek (pouze email adresy), vše je v jednom řáku

-mezery můžou být jakkoliv dlouhé.


Potřeboval bych dát do podmínky postupně jednu adresu po druhé. Tj uplatnit jednoduchou podmínku třeba IF na každou z nich. 

Zkoušel jsem vytahovat tyto mailovky pomocí cut apod. a vždy bez úspěchu.Problém je v tom, že mezery mezi adresami můžou být jakkoliv dlouhé.

Nemáte někdo nápad, jak na to?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.2.2006 12:21 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Úprava textu pomocí shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Potřeboval bych dát do podmínky postupně jednu adresu po druhé. Tj uplatnit jednoduchou podmínku třeba IF na každou z nich.

Můžete trochu blíže objasnit, co jste tím myslel?

16.2.2006 12:25 Rover | skóre: 10
Rozbalit Rozbalit vše Re: Úprava textu pomocí shellu
Odesílatel pošle mail zároveň na více adres a já potřebuji každou z nich podrobit testu, jestli se daná adresa nenachází v určitém seznamu adres.
Mám již zmíněnou syntaxi adres a potřebuji najít způsob jak z ní "vyškrábnout" jednu mailovku po druhé a podrobit ji podmínce.
            
16.2.2006 12:23 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Úprava textu pomocí shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
tr -s ' '
16.2.2006 12:27 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Úprava textu pomocí shellu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Není to spíš práce pro for?
for MAILOVKA in $TEXT
do      co_se_ma_udelat_s $MAILOVKA
done
Příklad: :-)
 $ for MAIL in jedna@mailovka   druha@mailovka
> do echo $MAIL
> done
jedna@mailovka
druha@mailovka
oVirt | SPICE
16.2.2006 12:32 Rover | skóre: 10
Rozbalit Rozbalit vše Re: Úprava textu pomocí shellu
Jo jo,,, to IF jsem uvedl jen pro příklad... ale důležité je to jak dostat z uvedeného textu konkrétní mailovky... Toť pro mě oříšek :)
tr -s ´ ´ vypadá dobře ... :)
            
16.2.2006 12:33 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Úprava textu pomocí shellu
Ale vždyť to přeci nepotřebujete. Bude to fungovat i v případě, že tam necháte víc mezer…
16.2.2006 12:37 Rover | skóre: 10
Rozbalit Rozbalit vše Re: Úprava textu pomocí shellu
Takže by to mohlo být takto?:
a="   pokus@ksl    soi@lskjsk"
for i in $a


:}
jdu na obed ... ale zatím díky za nakopnutí,,
            
16.2.2006 14:57 Rover | skóre: 10
Rozbalit Rozbalit vše Re: Úprava textu pomocí shellu
Tohle jsem přesně potřeboval. Přitom tak jednoduché :) Netušil jsem totiž, že for zkousne toliko mezer ... jo praxe je praxe
díky

Mimochodem Rastos: díky za tr -s ´ ´  určitě najdu použití.
            
16.2.2006 15:24 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Úprava textu pomocí shellu
To není otázka toho, co snese for, ale jak funguje word splitting. Když uděláte mezi parametry příkazu dvě mezery místo jedné, shell proti tomu také neprotestuje.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.