Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: timmynovak 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.
-
Co to sedu posílat rovnou po řádcích:
.. | 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:
.. | while read line; do echo $line; done | sed ...
-
zkoušel jsem to (zpracovávám výstup z nc), ale nějak mi to zlobilo, zatímco roura funguje skvěle.
-
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ě.
-
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á:(
-
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
?