- Frissült a MediaTek középkategóriás ajánlata
- Xiaomi Redmi Note 5 Global
- Volkswagen ID.7 menetpróba
- Nothing Phone (2) - több, mint elsőre látszik
- Huawei P40 lite - kényszerpályán
- Google Pixel 6/7/8 topik
- iPhone topik
- Különleges kameraszettet kapott a Huawei Pura 70 Ultra
- Macrodroid
- Apple iPhone 15 Pro Max - Attack on Titan
Hirdetés
-
Sorra osztja a dollármilliárdokat az USA a chipgyártóknak
it Az Intel, a TSMC és a Samsung után a Micron következik, ők is tetemes összegű támogatást kapnak az USA-tól a chipgyártáshoz.
-
QLC-s Team Group SSD jön a PCI Express 4.0-s halmaz belépőszintjére
ph A vállalat fél évtizedes jótállással kísért újdonságát tárhelymérettől függően 512, 1024, valamint 2048 TBW tartósságra hitelesítették.
-
Frissült a MediaTek középkategóriás ajánlata
ma Hivatalos a Dimensity 6300, ez lesz a MediaTek kínálatából kivezetésre kerülő 6100+ utódja.
Új hozzászólás Aktív témák
-
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. :Sszerk.: Lehet, hogy ronda megoldás de Notepad++-ban mentés után replace-szel meg lehet csinálni.
[ Szerkesztve ]
-
-
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
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%stTehá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,' ' /' ' -
cAby
tag
válasz Jester01 #955 üzenetére
Megnéztem akkor amikor mondtad, de egy ilyennel találtam szemben magam:
cpu 199957490 1300639 49153374 7781071864 207319963 25528 845323 0 0Fogalmam 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.
-
-
Jester01
veterán
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
-
cAby
tag
válasz Jester01 #958 üzenetére
Á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 ]
-
-
lapa
veterán
ü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 ]
-
lapa
veterán
-
-
lapa
veterán
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 ]
-
-
lapa
veterán
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 ]
-
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 ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
eriktoth
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
doneA 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.
-
-
CPT.Pirk
Jómunkásember
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)
-
CPT.Pirk
Jómunkásember
válasz CPT.Pirk #973 üzenetére
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)
-
-
CPT.Pirk
Jómunkásember
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)
-
-
CPT.Pirk
Jómunkásember
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)
-
válasz CPT.Pirk #978 üzenetére
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 ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
CPT.Pirk
Jómunkásember
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)
-
-
CPT.Pirk
Jómunkásember
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)
-
CPT.Pirk
Jómunkásember
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
xxxxyyyyMost 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)
-
válasz CPT.Pirk #984 üzenetére
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).
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
CPT.Pirk
Jómunkásember
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)
-
válasz CPT.Pirk #986 üzenetére
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.Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
CPT.Pirk
Jómunkásember
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)
-
válasz CPT.Pirk #988 üzenetére
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.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
-
CPT.Pirk
Jómunkásember
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)
-
válasz CPT.Pirk #992 üzenetére
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.Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
CPT.Pirk
Jómunkásember
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)
-
válasz CPT.Pirk #994 üzenetére
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.Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
CPT.Pirk
Jómunkásember
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érleteMindenké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)
-
-
CPT.Pirk
Jómunkásember
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)
-
-
CPT.Pirk
Jómunkásember
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)
Új hozzászólás Aktív témák
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- Frissült a MediaTek középkategóriás ajánlata
- ASUS routerek
- WLAN, WiFi, vezeték nélküli hálózat
- Total Commander
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Amazon
- 3D nyomtatás
- Kínai, és egyéb olcsó órák topikja
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Microsoft licencek a legolcsóbban - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- AKCIÓ! - STEAM kulcsok /Anuchard, Aragami, Children of Morta, stb. - 2024.04.17.
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- Microsoft Windows Server 2019 Device CAL licensz
- több darab Microsoft Office 2013 Otthoni és kisvállalati termékkulcskártya - fizikai termék
- Sims 3 + kiegészítők (és 1db Sims 2 kiegészítő) gyűjtőknek
- KERESEK Régi PC Játékokat
- Makón Operációs rendszerek telepítését, frissítését, karbantartását rövid határidővel vállalom