Příkaz wc na nauzavřený výstup

Příkaz wc na nauzavřený výstup
« kdy: 18. 06. 2024, 19:04:51 »
To se netýká toalet. Ale nevím si rady , jak poslat příkaz wc na nějak výstup  příkazu(například jako tcpdump, inotify, ale plus který zpočátku vychrlí množství naakumulovanych dat ) , který neukončí svůj výstup (jako journalctl bez parametrů nebo tail soubor.txt --follow) a ten příkaz ani nemá volbu  ,kterou tohle chci docílit(aby nevypisoval nepřetržitě, ale jen vypsal jen logy doteď a a skončil).

(Mohu si dát ohejbák příkaz>tmp.txt ;Ctrl+C ; wc tmp.txt ; rm tmp.txt)

Jde např. něco jako
 ( příkaz &  sleep 3 ; >&-) |wc
?


Nejde mi primárně o ukončení přikazu po určité době (byť u tcpdump nebo inotify bych to ocenil),   

Ale o ukončení příkazu , potom, co bouřlivě vypíše "veškerá předchozí data" a pak už jen sporadicky vypíše jen při nějaké  události(ta fáze mě už nezajímá). Tak jsem tam dal rezervu 3s.
« Poslední změna: 18. 06. 2024, 19:08:42 od mikesznovu »


bmn

  • ***
  • 172
    • Zobrazit profil
    • E-mail
Re:wc na nauzavřený výstup
« Odpověď #1 kdy: 18. 06. 2024, 19:34:59 »
Příkazem timeout se dá ukončit příkaz po uvedené době a na potlačení chyby se za něj dá něco co nic nevypíše. Třeba takhle

$ (timeout 3 yes; echo -n) | wc

Re:Příkaz na mixovaný výstup+vstup
« Odpověď #2 kdy: 11. 07. 2024, 17:14:58 »
Tak to je bomba, o tom jsem nevěděl


Btw existuje nějaký modifikátor jako v php @funkce nebo nohup , co by právě
zahodilo návratový kód příkazu. ? Korektně:nahradilo 0.
(Syntaktický cukr toho "echo - ;")

A potom , existuje něco pro  zamezení smíchání vstupu (vložení ze schránky) a výstupu?
Typicky   napíšu sed -E 's%  +% %g' , dám.entr a pak vložím z schránkě a ctrl+d. Očekávám že se v-sype celá schránka a potom se vy-sype celý výstup .
Celý znamená nepromíchaný s zadaným textem., což právě se stane. A dokonxlce na každé platformě jinak
jak.to souvisí s wc? pokud použuju. Sed 's...c ,|wc enter, shift+ins,ctrl+d tak krásně (a zlogiky věci wc) se výstuo vypíše na závěr

Takže neexistuje něco jako
Sed 's...' |  bufferize , Enter, shift+ins,ctr+d

?


Je to problém toho, že vkládaný text má tu drzost se zobrazovat.  ;D a. Že zpracování je nějak bufferované.
Něco bez okliky vložení do dočasného souboru
« Poslední změna: 11. 07. 2024, 17:21:17 od mikesznovu »

Re:Příkaz wc na nauzavřený výstup
« Odpověď #3 kdy: 12. 07. 2024, 11:41:01 »
Stačí výstup přesměrovat do souboru nebo do less například.