Portál AbcLinuxu, 11. května 2025 06:57

Dotaz: Predani instrukce programu

30.3.2010 12:50 Rogue | skóre: 4
Predani instrukce programu
Přečteno: 134×
Odpovědět | Admin
Ahoj potřeboval bych od Vás poradit s jedním problémem. Potrebuji utilite sed predávat dynamicky instrukce, ale nedaří se mi to udělat. Problém spočívá v tomto:
instrukceA='s/^[0-9:]*\(.*\)/\1/';
instrukceB='s/^[0-9:]*   \(.*\)/\1/';
cat nejakySoubor |
sed $instrukceB;
#END
Potřeboval bych, aby to fungovalo tímto způsobem, prosím o radu, předem díky.

Řešení dotazu:


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

Odpovědi

30.3.2010 13:15 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Predani instrukce programu
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed "$instrukceB" <nejakySoubor
I am always ready to learn although I do not always like to be taught. (W. Churchill)
30.3.2010 13:18 Rogue | skóre: 4
Rozbalit Rozbalit vše Re: Predani instrukce programu
Já potřebuju, aby se ten SED choval dle toho co je uloženo v té proměnné, a takhle mi to právě nejde.
30.3.2010 13:20 Rogue | skóre: 4
Rozbalit Rozbalit vše Re: Predani instrukce programu
Už to funguje díky
30.3.2010 13:21 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Predani instrukce programu
Ale jde. Příště ale raději používejte -e, ať nedochází ke zmatkům.
30.3.2010 13:35 Rogue | skóre: 4
Rozbalit Rozbalit vše Re: Predani instrukce programu
OK diky na -e nezapomenu ;)
30.3.2010 14:03 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Predani instrukce programu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Jen pro úplnost: tak, jak jste to napsal, je to špatně, protože nemůžete přerušit řádek s rourou. Takže buď

  cat nejakySoubor | sed -e "$instrukceB"

nebo

  cat nejakySoubor \
    | sed -e "$instrukceB"

Středníky na koncích řádků jsou zbytečné, konec řádku funguje jako oddělovač příkazů.

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.