Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Sed a zpracování po řádcích  (Přečteno 670 krát)

timmynovak

  • Aktivní člen
  • *
  • Příspěvků: 300
Sed a zpracování po řádcích
« kdy: 05 Února 2012, 09:06:17 »
Ahoj,
mám sed v rouře a potřeboval bych, aby mi jednotlivé řádky posílal v rouře dál ihned a nečekal na konec souboru, jde to nějak zařídit? Našel jsem přepínač -u, ale nevím, kolik bajtů se při tomto režimu přečte - může mi na vstup přijít řádek i o dvou bajtech. Díky.
« Poslední změna: 05 Února 2012, 09:38:27 od timmynovak »

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Sed a zpracování po řádcích
« Odpověď #1 kdy: 05 Února 2012, 10:25:58 »
Co to sedu posílat rovnou po řádcích:
Kód: [Vybrat]
.. | while read line; do sed ...; done | ..
Edit: jeden středník se mi zatoulal kam neměl...

Edit1: kurnik, jsem to zapsal trochu jinak, než jsem zamýšlel. Kdyby se $line vpasovala do toho sedu, tak ano, jinak takto:

Kód: [Vybrat]
.. | while read line; do echo $line; done | sed ...
« Poslední změna: 05 Února 2012, 21:41:02 od GdH »

timmynovak

  • Aktivní člen
  • *
  • Příspěvků: 300
Re:Sed a zpracování po řádcích
« Odpověď #2 kdy: 05 Února 2012, 11:32:32 »
zkoušel jsem to (zpracovávám výstup z nc), ale nějak mi to zlobilo, zatímco roura funguje skvěle.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Sed a zpracování po řádcích
« Odpověď #3 kdy: 05 Února 2012, 21:01:56 »
Roura je to furt, jen to sed dostává po řádcích. Pokud nedodáš nějaký konkrétní příklad, na kterém to kolabuje, tak ti neporadím zcela určitě.

timmynovak

  • Aktivní člen
  • *
  • Příspěvků: 300
Re:Sed a zpracování po řádcích
« Odpověď #4 kdy: 05 Února 2012, 21:25:25 »
Kód: [Vybrat]
nohup nc -l -d -k  8888 | sed -u '/^$/d;s/^/INSERT INTO a (a) VALUES ('"'"'/;s/$/'"'"');/'  | mysql -u xxx --password='xxx' xxx &

no a občas se při krátkých řádcích získaných z nc stane, že se čeká na další a teprve pak se to pošle do sed, nebo to alespoň tak vypadá:(

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Sed a zpracování po řádcích
« Odpověď #5 kdy: 05 Února 2012, 21:32:06 »
Kód: [Vybrat]
nc -l -d -k  8888 | while read line; do echo $line; done | sed '/^$/d;s/^/INSERT INTO a (a) VALUES ('"'"'/;s/$/'"'"');/'  | mysql -u xxx --password='xxx' xxx
?

 

Provoz zaštiťuje spolek OpenAlt.