Hirdetés

2019. február 20., szerda

Gyorskeresés

Hozzászólások

(#951) cAby válasza bambano (#950) üzenetére


cAby
(tag)

Ezt a 2 fogom akkor használni:

nohup iostat -m 1| while read p; do echo $(date) $p; done | grep sde > /tmp/io.txt &
nohup top -b -d 1| while read p; do echo $(date +"%r") $p; done | grep Cpu > /tmp/cpu.txt &

Tehát így az eredeti script amit csináltam nem is kell.

Kérdés, hogy a felső 2 parancsot pontosan 1 időben el lehet indítani?

szerk.: Úúú.. a top-os mégsem jó, mert amit kiír az ez:

01:49:48 AM Cpu(s): 7.4%us, 12.0%sy, 0.0%ni, 12.0%id, 68.3%wa, 0.0%hi, 0.3%si, 0.0%st

és így nem tudok statisztikát csinálni. Az értékek mellé nem kellene más, tehát:
7.4%us, helyett csak 7.4 kéne. Ezt gondolom nem lehet kiszedni. :S

szerk.: Lehet, hogy ronda megoldás de Notepad++-ban mentés után replace-szel meg lehet csinálni. :D

[ Szerkesztve ]

(#952) bambano válasza cAby (#951) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

szerintem nem lehet pont egyszerre elindítani
legfeljebb pont egy perc különbséggel, akkor jobban fog kinézni a log

seddel bármit ki lehet szedni :)

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#953) Jester01 válasza bambano (#947) üzenetére


Jester01
(PH! kedvence)

soronkénti módról blokkmódra kapcsol és nem látom, hogy konkrétan miért

grep --line-buffered :F

(bár man szerint ez grep output, de hátha)

[ Szerkesztve ]

Jester

(#954) cAby válasza bambano (#952) üzenetére


cAby
(tag)

Hmm.. tényleg, elő is kaptam régi jegyzeteimet és megtudtam, hogy cat akarmi | sed s/eztcsereld/emerre/ a parancs.

Neki is ugrottam, de nem jön össze eddig még :D
Ez egy sor:
02:02:38 Cpu(s): 16.8%us, 13.7%sy, 0.0%ni, 7.6%id, 62.0%wa, 0.0%hi, 0.0%si, 0.0%st

Tehát, le akarom cserélni a "%us, " (szóköz is van) egy szóközre, ugyan így a többi, kiv a %st, mert ott azt csak törölni kellene.

A szóközt azt hogyan kellene jelölni?
Eddig ez votl a próbám, amivel csúnyán megbuktam. :)
top -b -d 1| while read p; do echo $(date +"%T") $p; done | grep Cpu | sed s / %sy,' ' /' '

(#955) Jester01 válasza cAby (#951) üzenetére


Jester01
(PH! kedvence)

Gyönyörűen elbonyolítottad és csak a megoldandó problémákat gyártod magadnak. Továbbra is javasolnám a /proc olvasását. Mindjárt lenne közel azonos időpontról statisztikád amit aztán úgy formázol ahogy akarsz.

Jester

(#956) cAby válasza Jester01 (#955) üzenetére


cAby
(tag)

Megnéztem akkor amikor mondtad, de egy ilyennel találtam szemben magam:
cpu 199957490 1300639 49153374 7781071864 207319963 25528 845323 0 0

Fogalmam sincs mit jelentenek ezek a számok, ill. hogyan formázzam, hogyan kapjak ebből %-os értéket. :( Ezért akartam mással megoldani. :)

De ez a megoldás, amit bambano írt jó lesz. Ha meg ki tudom sed-el szedni ami nem kell oda, akkor tökéletes lesz nekem.

Elhiszem, hogy a másik szebb megoldás lenne, de sajnos nem értek ilyen szinten a dolgokhoz. :)

(#957) bambano válasza Jester01 (#953) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

:R

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#958) Jester01 válasza cAby (#956) üzenetére


Jester01
(PH! kedvence)

Ezek a különböző módban töltött időadatok (user,system,nice, idle, wait, egyebek)
Százalékot úgy kapsz belőle mint ahogy a top is - két egymás utáni értéket kivonsz és osztod a teljes idővel.

Mondjuk ha kifejezetten a monitorozás a cél, és nem pedig a script írás, akkor nyilván vannak erre kész megoldások.

Jester

(#959) cAby válasza Jester01 (#958) üzenetére


cAby
(tag)

Áhh értem, köszi a felvilágosítást. Maradok az előbbi megoldásnál inkább. :)

Már ki is tudtam sed-el szedni ami nem kell oda:

sed -e "s/Cpu(s): //" | sed -e "s/%us,//" | sed -e "s/%sy,//" | sed -e "s/%ni,//" | sed -e "s/%id,//" | sed -e "s/%wa,//" | sed -e "s/%hi,//" | sed -e "s/%si,//" | sed -e "s/%st//"

De csak úgy működik, ha előbb az eredményt elmentem egy cpu.txt-be
aztán az elejére írom, hogy cat cpu.txt | sed .... és így elmentem egy másikba.

De így nem, hogy:
top -b -d 1| while read p; do echo $(date +"%T") $p; done | grep Cpu | sed -e "s/Cpu(s): //" | sed -e "s/%us,//" | sed -e "s/%sy,//" | sed -e "s/%ni,//" | sed -e "s/%id,//" | sed -e "s/%wa,//" | sed -e "s/%hi,//" | sed -e "s/%si,//" | sed -e "s/%st//"

Ilyet nem lehet, hogy egyből így mentse le? :\

[ Szerkesztve ]

(#960) bambano válasza cAby (#959) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

a sedet felesleges minden művelethez forkolni, elég egyszer és az összes parancsot megadni neki egymás után.

lehet, hogy ide is jester01 ötlete kell.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#961) cAby válasza bambano (#960) üzenetére


cAby
(tag)

Értem.
Nagyon szépen köszönöm a segítséget, életmentő volt!

(#962) lapa


lapa
(PH! kedvence)

üdv. van egy olyan anomáliám, hogy a moron seamonkey berakott az eredetileg 2,2 mb-s htm fileomba 19 mb-nyi felesleges üres sort (LF).

nagyjából semelyik platform semelyik megoldásával nem sikerült eddig megoldani. múltkor már a notepad++ multiline find & replace-e megcsinált egy ugyanilyet, de most se winen, se linuxon nem csinál semmit se (homokóra akármennyi ideig hagyom).

röviden az érdekelne, hogy LF LF LF LF-ből csináljon nekem a shell egy LF-et (magyarul töröljön 3 felesleges sort).

adott esetben LF LF LFCR LF -ből LF is érdekelne.

próbáltam egyelőre más, egyszerűbb dolgokat de sajnos kevés sikerrel. bocs, ha lehet most nem állnék neki guglizni, ha valaki tud egy gyorsat mondani akkor hajrá. köszi.

[ Szerkesztve ]

(#963) lapa válasza lapa (#962) üzenetére


lapa
(PH! kedvence)

hát mostmár végigtoltam a gugli első tíz találatát, de semmi értelmes eredmény.

ettől félig függetlenül: nemtom, hogy ezt a többsorost lehet így írni?

lapa@inox:/io$ sed -i '/^$/{
> N
> /^\n$/D
> }' wag.htm > xxx.htm
lapa@inox:/io$

nem mintha csinálna akármit is, csak kérdem.

(#964) bambano válasza lapa (#962) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

awk-val sor hosszra válogatva nem lehet takarítani?
a crlf - lf cserét meg vagy tr-rel vagy unix2dos/dos2unix párossal csinálnám.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#965) lapa válasza bambano (#964) üzenetére


lapa
(PH! kedvence)

mittomén mivel mit lehet csinálni, azért vagyok itt. (bocs, csak a hülye helyzet idegesít már, hogy a 21. században ekkora gond egy mezei htm kezelése mindenféle bugok nélkül).

szóval nekem a szimpla "üres sor eltűntetős sed" se műx.

ezt tudom elmondani a fájlról:

lapa@inox:/io$ enca wag.htm -L hungarian
7bit ASCII characters
Mixed line terminators
lapa@inox:/io$

most ez jó vagy rossz?

nagyjából odáig jutottam, hogy a fájlba az első komment blokkba rak a seamonkey valami 700 ezer üres sort. vagy legalábbis egy helyre biztos rakott.

előbb megnyitottam gedit-tel, először sírt, hogy nem ismeri a kódolást. mondtam neki, hogy 8859-2. akkor nagy nehezen megnyitotta, sőt még a "-->" -t is megtalálta. akkor fogtam és kijelöltem-kitöröltem a 700 ezer sort. elmentettem, erre a 29 megából lett 52. gyanús, hogy ez nem a duplája, szóval gondolom van minden komment blokkban pár százezer fölös sor.

most azért nem műxenek a sedek, mert nem-utf-8?

már nincs semmilyen igényem, csak tűnjenek el az üres LF és CR LF sorok.

[ Szerkesztve ]

(#966) bambano válasza lapa (#965) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

publikus az a html?

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#967) lapa válasza bambano (#966) üzenetére


lapa
(PH! kedvence)

hát neme. végül úgy döntöttem megpróbálom kiszedetni belőle az összes felesleges üres sort notepad++-szal. most megnéztem és a textfx pluginban nem csak "delete empty lines" van, hanem "delete surplus empty lines" is. szóval ráeresztettem végül.

ezzel küzdött egy darabig, és látszólag oké lett. mivel valami a komment blokkok körül nem stimmel a seamonkey-nak, most inkább kitöröltem az összes ilyet is (csak inaktív tartalom volt, semmi egyéb lényeges).

azt továbbra se tudom mitől nem műxött ugyanez sed-ben, de mindegy is. buktam pár órát. köszi ettől függetlenül.

[ Szerkesztve ]

(#968) bambano válasza lapa (#967) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

a sok soros paraméternél nem tudom, hogy a shell nem rakja-e össze egy sorba...

esetleg abban a html-ben azokat a sorokat ki tudod-e rakni valami publikus helyre, amiket törölni kell és nincs bennük semmi értékes infó?

[ Szerkesztve ]

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#969) eriktoth


eriktoth
(kvázi-tag)

Üdv van a következő kódom es syntaxis hibat jelez:
while read file
isdir=false
isfile=false
for f in $file/*
do
if [ -d $f ] ; then
isdir=true
else isfile=true
fi
done
done

A lényege az lenne, hogy megnézi hogy a megadott mappában vannak e másik mappák és fájlok. Vagy esetleg valakinek valami jobb megoldás? Nekem elsőre ilyesmi ugrott be.

(#970) bambano válasza eriktoth (#969) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

így első ránézésre, teszt nélkül:
while read file; do

másrészt meg inkább find könyvtarnev -type d és -type f

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#971) eriktoth válasza bambano (#970) üzenetére


eriktoth
(kvázi-tag)

Köszönöm szépen :)

(#972) lapa válasza bambano (#968) üzenetére


lapa
(PH! kedvence)

jaj, bocs hogy csak most. ha szeretnél küzdeni kiszedhetek egy részt, de mint írtam megoldotta végül a notepad++ textfx-je.

az más kérdés, hogy az meg csinált más hibákat, de már nem érdekel, majd ujjgyakorlatnak megcsinálom.

(#973) CPT.Pirk


CPT.Pirk
(PH! félisten)

Na most valami tanácsot szeretnék kérni. Még mindig a soros port olvasás gondom van.

Ha od-val nézem a /dev/ttyUSB0 -t, akkor vagy eltalálja, hol kezdek adatot küldeni, vagy nem. Úgy csináltam meg az adat szerkezetet, hogy 00 00 a kezdést jelöli, FF FF pedig a végét, és a közte lévő 2 darab szám értékére van szükségem.

Amikor jó, akkor ilyen formátuma van a kimenetnek: (od -An -t x1 /dev...)
00 00 xx 0x xx 0x FF FF 00 00 xx 0x xx 0x FF FF

(xx 0x a normális adat forma a 12 bites számaimhoz)

Más esetekben meg ott indul, ahol gondolja. Tehát van, hogy 00 xx 0x xx 0x FF FF ..., van hogy FF 00 00 xx 0x xx 0x FF FF 00 00 xx 0x xx 0x FF

Amikor jó helyen kapja el, akkor minden érték stimmel. Ha nem, akkor meg rossz párokat rak össze, pl. utolsó példánál az FF 00, az 00 xx, és az 0x FF fogják alkotni a számpárokat, ami nem jó.

Nem tudom hova tenni az od ilyen viselkedését. Olyanra tudtok mondani egy egyszerű szkriptet, hogy egyszerűen pl. lementi a cat /dev/ttyUSB0 kimenetét egy fájlba, de olvasható formában? Terminálban ez a parancs kidob egy rakás kérdőjel szimbólumot és semmi mást.

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#974) CPT.Pirk válasza CPT.Pirk (#973) üzenetére


CPT.Pirk
(PH! félisten)

Na jó, rájöttem, annyira nem nehéz az alapokat megírni. Szóval írtam egy pici scriptet, ami kitolja egy txt fájlba az értékeket. Viszont ha od-vel csinálom, akkor az előzőben vázolt probléma fent áll, ha rossz helyen kapja el a számokat, akkor minden érték hibás lesz.

cat-al pedig csak ascii karakterek mennek a fájlba, ahogy nézem, ez nem is alkalmas arra, amit szeretnék.

Tudtok valamit, ami az od-t kiváltaná?

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#975) bambano válasza CPT.Pirk (#974) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

ha te programozod a mikrokontrollert, akkor miért nem decimálisan iratod ki a soros portra?

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#976) CPT.Pirk válasza bambano (#975) üzenetére


CPT.Pirk
(PH! félisten)

Nem mikrovezérlő, ott nem tudom hogyan zajlik a soros port móka.

Szóval arra gondolsz, hogyha decimális formában küldöm át, pl. BCD kódban, akkor a cat parancs már számokat fog nekem kiadni? Ezt relatíve könnyen meg tudom csinálni, mert van egy kész bin - bcd konverterem.

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#977) bambano válasza CPT.Pirk (#976) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

nem bcd-ben, hanem olvasható ascii-ban. de igen, erre gondolok, és akkor nem kellene od-vel vitézkedni. szám sorvége, vagy szám | szám sorvége ez jöhetne belőle.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#978) CPT.Pirk válasza bambano (#977) üzenetére


CPT.Pirk
(PH! félisten)

Ahogy nézem, ez nem is egyszerű feladat. FPGA-ban nem nagyon van olyan, hogy ascii.

Talán az járható út, hogy BCD átalakítást csinálok, majd pedig a számjegyeket egy LUT táblában leírtak szerint átalakítom az ASCII kódjukra, és azt küldöm el. Trükkös lesz. [link]

Kicsit egyszerűbb lenne az od, csak hogy miért téveszti el a kezdést, az jó kérdés.

[ Szerkesztve ]

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#979) bambano válasza CPT.Pirk (#978) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

a bcd->ascii konverzió szerintem annyi, hogy hozzáadsz 48-at a byte értékéhez, vagy másképp mondva beállítod a 32-es és a 16-os helyiértékű biteket egybe.

szerk: lemaradtam az elejéről, nem emlékeztem, hogy fpga-n csinálod. ott lehet, bonyolítás ez

[ Szerkesztve ]

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#980) CPT.Pirk válasza bambano (#979) üzenetére


CPT.Pirk
(PH! félisten)

Ez jó ötlet.

Tehát ha hozzáadok a 0-hoz 48-at, akkor kapom az ascii beli 0-t. Magyarul ha elküldöm az 110000 -t a terminálnak, akkor egy 0-t kell lássak a cat-al. (és így tovább)

Még hozzáadni sem kell, egy "case" függvénnyel kvázi statikusan le lehet írni, hogy ha x a bemenet, akkor y a kimenet, a mindössze 10 érték miatt ez nem is bonyolult.

Ha az egészet befoglalom STX, ETX karakterek közé (vagy valamelyik hasonló közé), akkor a cat ezt meg fogja érteni, vagy kitolja ezeket is a fájlba?

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#981) Jester01 válasza CPT.Pirk (#974) üzenetére


Jester01
(PH! kedvence)

Nem tudom az od miért rontja el illetve a cat miért lenne jó. Viszont ha így van, akkor persze a cat-tal (vagy dd-vel) olvashatsz, az od-vel meg konvertálhatsz, például:

dd if=/dev/ttyUSB0 bs=4 count=1 | od -An -d

Jester

(#982) bambano válasza CPT.Pirk (#980) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

szerintem a cat mindent áttol, ami nem eof.

case függvény sem kell, egyszerűen fixre drótozod azt a két bited a kimenetben.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#983) CPT.Pirk válasza bambano (#982) üzenetére


CPT.Pirk
(PH! félisten)

Ohh tényleg, hiszen 4 biten jön be a BCD szám, csak elé kell tenni még 2-t. FPGA-ban ez meg különösen egyszerű ;]

Ebéd után remélem már tudok mondani valami eredményt.

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#984) CPT.Pirk válasza bambano (#982) üzenetére


CPT.Pirk
(PH! félisten)

Megvan a válasz, a cat érti az új sor (decimális 10) karakterét, valszeg a többi vezérlő karaktert is. Gyönyörűen írogatja a dolgokat ilyen formában, ha 9. byte az új sor byte-ja.

xxxxyyyy
xxxxyyyy
xxxxyyyy

Most annyi kellene, hogy valamilyen módon szétszedem xxxx yyyy -ra a 8 számjegyet, hogy lehessen osztani yyyy -t xxxx -el. Tegyek be valami szeparáló karaktert, amire egy függvény rá tud keresni, vagy számolgassak karaktereket?

Mondjuk ez a bin -> bcd átalakítás nem volt éppen egyszerű téma.

[ Szerkesztve ]

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#985) bambano válasza CPT.Pirk (#984) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

a szeparáló karakter általában egy jó ötlet, a kérdés, hogy az fpga-t egyszerűbb-e újraprogramozni, vagy a shell szkriptet egyszerűbb mókolni. szerintem a második, de megvárjuk Jester01 kollégát a szokásos sormintáival :)

sedben pl. annyi, hogy négy darab számot le kell választani egy regexp-pel, valami ilyesmi lehet:
echo 12345678| sed -e 's,\([0-9]\{4\}\)\([0-9]\{4\}\),echo $(( \1 / \2 )),'

de lehet awk-ban is és akkor rögtön megcsinálhatja az osztást (a shell egész számokat kezel).

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#986) CPT.Pirk válasza bambano (#985) üzenetére


CPT.Pirk
(PH! félisten)

Igen, a shell egész számos. Az awk alkalmas a 10-es alapú logaritmus számolására is?

Ez az awk szimpatikus, de még sosem használtam. Talán C-nél kellene maradnom, bár sosem tanították meg rendesen, így igazából az sem annyira az én világom.

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#987) bambano válasza CPT.Pirk (#986) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

természetes alapú logaritmus van benne, akkor minden van benne.
C-ben ezt, szerintem bonyolultabb lenne, mint awk-ban.
másik lehetőség, hogy közvetlenül töltöd adatbázisba az adatot és akkor számolsz logaritmust, amikor lekérdezed az adatot.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#988) CPT.Pirk válasza bambano (#987) üzenetére


CPT.Pirk
(PH! félisten)

Egy ilyen awk szcriptet, mondjuk egy fájlt hogyan lehet használni? Pl. arra gondolok, mint mikor egyszerű C kódot fordítok gcc-vel terminálban, és az eredmény xyz.o fájl egyből futtatható. Ez awk-n is ilyen?

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#989) bambano válasza CPT.Pirk (#988) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

awk ugyanúgy interpreter, mint a shell, nagyjából ugyanúgy is kell használni. lehet parancssori is. pl.

echo 12345678| awk ' {a=substr($0,0,4); b=substr($0,4,4); printf "%d,%d,%f\n",a,b,log(b/a); }'

ezt már variálhatod kedvedre :) még annyit, hogy ehhez nem kell cat, az awk meg tud nyitni minden karakteres fájlt (is). tehát egy cat /dev/ttyUSB0 | awk felesleges, jó az awk /dev/ttyUSB0-nak is.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#990) CPT.Pirk válasza bambano (#989) üzenetére


CPT.Pirk
(PH! félisten)

Az awk /dev/ttyUSB0 -nak hogy kellene működnie? Mert ha ezt írom be, akkor a modulom nem küld semmit. Ha cat -al, akkor meg minden rendben.

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#991) bambano válasza CPT.Pirk (#990) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

én az egyszerűsítés kedvéért az awk programját én kihagytam, tehát
awk 'a program' /dev...

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#992) CPT.Pirk válasza bambano (#991) üzenetére


CPT.Pirk
(PH! félisten)

Tehát akkor ez úgy van, hogy írok egy .awk fájlt ilyen módon:

#!/bin/awk -f
BEGIN {

számolós kód
.
..
...

exit;
}

,majd pedig az egészet meghyvom így a terminálban:

awk -f program.awk ?
Nem egy soros terminálos cuccban gondolkodok, mert később még jó lenne a pontokat betenni egy egyszerű 2D koordináta rendszerbe. Bár ez már hyper advanced lesz nekem.

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#993) bambano válasza CPT.Pirk (#992) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

ha awk -f -fel hívod, akkor nem kell az elejére a #! kezdetű sor.
egyébként meg próbáld ki. :)
de nem a begin blokkba kell megírni az egész awk progit.
a 2d koordinátázást meg úgy érdemes megcsinálni, hogy awk-ból olyan kimenetet csinálsz, amit a gnuplot meg bír enni és akkor összekötöd a kettőt.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#994) CPT.Pirk válasza bambano (#993) üzenetére


CPT.Pirk
(PH! félisten)

Na arra rájöttem, hogy ilyen formában gondolod az awk indítását terminálban:

awk -f program.awk /dev/ttyUSB0

Ebben az esetben ha jól értem a FAQ-ot, a "FILENAME" változó jelenti a /dev/... -t, és ezzel kell hivatkozni rá, vagyis ez a standard input.

Egyszer ennyit írtam az awk fájlba (a txt fájl létezik):

OUTPUT="/home/pa.... /output.txt

FILENAME > OUTPUT

Ez annyit csinál, mintha azt írnám a terminálba, hogy cat /dev/ttyUSB0. Szóval csak kiírja az értékeket. Innen jó lenne egy kis segítség valamilyen szinten. Gugliztam egy kört, de valahogy nem akar előjönni egy érthető awk leírás, amivel tovább tudnék lépni.

[ Szerkesztve ]

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#995) bambano válasza CPT.Pirk (#994) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

bocs, de nem értem, mi a gond.
fent megvan az awk program, azt beírod az awk-nak aposztrófok közé, utána teszed paraméternek a /dev/ttyUSB0-t és kész. a kimeneten ott lesz a két decimális szám meg a kettő hányadosának a logaritmusa.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#996) CPT.Pirk válasza bambano (#995) üzenetére


CPT.Pirk
(PH! félisten)

Tehát ilyen formában, "egysorosként"?

awk ' {a=substr($0,0,4); b=substr($0,4,4); printf "%d,%d,%f\n",a,b,log(b/a); }' /dev/ttyUSB0

Ebben az esetben gondja van a filenévvel.
awk: (FILENAME=/dev/ttyUSB0 FNR=1) fatal: 0-val osztás kísérlete

Mindenképpen bele kellene terveznem valami "start karakter" felismerést majd, azt fixen bele fogom tenni az fpga programjába. Ahogy nézem, csak úgy biztosítható, hogy a jó számjegytől kezdjek el rögzíteni.

[ Szerkesztve ]

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#997) bambano válasza CPT.Pirk (#996) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

így gondoltam volna, csak valamiért nem olvas a soros portodról...

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#998) CPT.Pirk válasza bambano (#997) üzenetére


CPT.Pirk
(PH! félisten)

Hmm, beírva az .awk fájlba az osztásos sorodat, valamint a végére a FILENAME szót, akkor nem rögtön kapom a div 0-t, hanem amikor a modulom elküld valamit, addig csak vár. Így gondolom nem a port olvasása a gond.

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

(#999) bambano válasza CPT.Pirk (#998) üzenetére


bambano
(Jómunkásember)
LOGOUT blog

azt beleírhatod, hogy csak akkor próbáljon osztani, ha a nevező nagyobb, mint nulla...
a=substr...
b=substr
if (a>0) printf "..."..

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#1000) CPT.Pirk válasza bambano (#999) üzenetére


CPT.Pirk
(PH! félisten)

No, megvan végre a log_10() funkció is.

function log10(x) {\
return log(x)/log(10.0);\
}\

{a=substr($0,0,4); b=substr($0,4,4); if (a > 0) printf "%d,%d,%f\n",a,b,20*log10(b/a); }

Így már jók a kiszámolt erősítés értékek. Ezeket kellene átirányítanom egy fájlba kezdésnek. Per pill még nem sikerült.

Valamint néha a 2. szám elcsúszik 1-2 értékkel, ezzel kezdenem kell valamit.

[ Szerkesztve ]

Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)

Copyright © 2000-2019 PROHARDVER Informatikai Kft.