Portál AbcLinuxu, 10. srpna 2025 14:19


Dotaz: pracuje 'sed' se slovy?

2.9.2006 17:31 Petr Nový
pracuje 'sed' se slovy?
Přečteno: 146×
Odpovědět | Admin
zdravím, měl bych pár dotazů ohledně sedu:

1) dejme tomu, že mám řádek
slovo1    slovo2    slovo3    slovo4    slovo5
a potřebuji z něj vytáhnout "slovo2", ale neznám jeho hodnotu ani "délku" předem. Prostě bych potřeboval, aby sed odstranil vše před a za ním na řádku (jenomže nejdřív je potřeba nějak prográmku sed říci, ať pracuje se slovy...).

2) I kdyby se to podařilo (asi odstraněním prvního slova + 3. a všeho déle až do konce řádku), je potřeba odstranit ty mezery
("    slovo2    ")
Zkoušel jsem různé variace sed 's/ *$//g', ale nic, zřejmě na to jdu špatně.

3) Jak mohu oddělit více příkazů v {} pri použití ve scriptu? \n , \ , ; ani mezera nefungují..

Děkuji za případné reakce.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.9.2006 17:49 Ondra
Rozbalit Rozbalit vše Re: pracuje 'sed' se slovy?
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed se slovy nepracuje. Na něco takového se hodí spíš cut. Nicméně tam může být (tuším) oddělovač pouze jeden znak, takže stejně by jsi to musel prohnat nejdříve sedem a ty mezery scucnout na jednu, tudíž je lepší to vyřešit v sedu rovnou a nepouštět další program.

např. sed 's/\([[:alnum:]]* *\)\{3\}\([[:alnum:]]*\).*/\1/

ponechá třetí slovo. Ale doporučuji si pročíst manuálovou stránku k editoru ed.
2.9.2006 17:52 Ondra
Rozbalit Rozbalit vše Re: pracuje 'sed' se slovy?
Resp. pracuje do té míry, že \< a \> matchují se začátkem a koncem slova, takže by se to dalo též asi použít.
Jesus Jimenez avatar 2.9.2006 17:57 Jesus Jimenez | skóre: 29
Rozbalit Rozbalit vše Re: pracuje 'sed' se slovy?
Odpovědět | | Sbalit | Link | Blokovat | Admin
echo "slovo1 slovo2 slovo3 slovo4 slovo5" | awk -F " " '{print $2}'

???
Doaenův zákon průtahů: Čím pomaleji pracuješ, tím méně naděláš chyb. -- Murphy
2.9.2006 19:49 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: pracuje 'sed' se slovy?
Odpovědět | | Sbalit | Link | Blokovat | Admin
V Pythonu:
'slovo1    slovo2    slovo3    slovo4    slovo5'.split()[1]
vrátí
'slovo2'
Něco podobného se řešilo v této diskusi:
http://www.abclinuxu.cz/forum/show/142189

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.