- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bigyo108: A vén PC-Főnix újjászületése
- Meggyi001: RTX 5060 - Az új népkártya?
- btz: Internet fejlesztés országosan!
- eBay-es kütyük kis pénzért
- bambano: Bambanő háza tája
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Új hozzászólás Aktív témák
-
Headless
őstag
válasz
Headless #2657 üzenetére
megoldottam, mivel a fájlokban van egy másik separator, azt feltudtam hasnálni, nyilván a zárt forráskódű fejlesztők is azt használják szeparátornak...
Röviden: grep kikeresem a byteoffseteket a separatorokhoz, majd végig megyek rajtuk while ciklusban, kiszámolom a megfelelő kezdő/végoffset értékeket és azt dd-vel szépen átmásálom. A separatort átírom, hogy ne legyen kereshető, nehogy megtalálja a zárt forráskódú szoftver fejlesztő, vagy bárki más aki rákeresneAz elején van 4 byte felesleg, valamint a separator 8 byte azt hozzáadom az előző byteoffsethez
previousByteOffset=4
imageCount=0
grep -oba ggggggg "$imageFile" |while IFS=: read byteOffset rest;do
dd if="$imageFile" of="$imageFile-$imageCount.jpg" bs=$(($byteOffset-$previousByteOffset)) count=1 skip=$previousByteOffset iflag=skip_bytes
previousByteOffset=$(($byteOffset+8))
imageCount=$(($imageCount+1))
done
-
prucam
tag
válasz
Headless #2192 üzenetére
Rendben. Egy kis magyarázat. Elnézést kérek.
Weblapokból, *txt-ékből, file-kből stb. szoktam az awk-val infót gyűjteni, főleg mondatkból. Néha olyan hosszúak a sorok (v. mondatok), hogy nincs kedvem "totozni" az awk-val, hogy most mezőben (mezőkben) van az info.
Ezért gondoltam arra, hátha van az awk-nak olyan funkciója, hogy mutassa meg melyik hányadik mezőben mi van.Saját egyszerű mondat pl.:
egy ketto harom negy ot
Végeredmény ez legyen:
1 egy
2 ketto
3 harom
4 negy
5 otA "read"-es megoldás jó nekem. Persze az adott sort nekem kell bemásolni a file-be. De mindig jobb mintha nekem kell számolgatni.
Az awk-nál meg van "NR==x" is, csak az adott sor számát kell "kitalálni":
Ennyi a magyarázat. Most érthetőbb?
-
beloadjoker
őstag
-
spammer
veterán
válasz
Headless #2059 üzenetére
Szerintem nem fájlnevekről van szó, hanem fájlokról, amikben keresünk (több sorban, és bármelyikben lehet a keresendő kifejezés). Ha feltétel itt most kulcsszót jelent, akkor ilyesmi:
grep -Pzl 'KEYWORD1.*\n.*KEYWORD2' *.txt
grep -Pzo 'KEYWORD1.*\n.*KEYWORD2' *.txtDe pl. ezek sem teljesen jók, mert ha a 2-es kulcsszó van előbb, már nem találja meg.
grep -Pzo 'KEYWORD1.*\n.*KEYWORD2|KEYWORD2.*\n.*KEYWORD1' *.txt
így sem találja meg mindet, mert csak az elsőt veszi figyelembe. Az egrep pedig semmit nem ad vissza ezzel.
awk '/keyword1/ && /keyword2/' *.txt szintén nem működik.
De ha mégsem kulcsszóról van szó, akkor nem ártana tudni, milyen feltételről van szó.
Ha valakit tud profi, egysoros (egy parancsos, nem pipe-os) megoldást a fentiekre, arra (én is) kíváncsi lennék.
-
Jester01
veterán
válasz
Headless #1998 üzenetére
A ciklust akkor dolgozza fel lassan, ha van benne valami lassú. A tiéd tele van külső program indítással (cut, grep, wc, sed) az enyém mind beépített ... garantáltan nagyságrendekkel gyorsabb. Ha nincs bash (vagy kompatibilis) akkor persze mindegy. A kimenet meg úgy néz ki ahogy először kérted
-
Jester01
veterán
válasz
Headless #1992 üzenetére
Tiszta bash megoldás, ami csak egyszer olvassa be a sorokat és semmilyen külső programot nem hív:
#!/bin/bash
declare -a stats
while read line
do
field=${line%;*}
field=${field##*;}
stats[$field]=$((stats[$field] + 1))
done
for field in ${!stats[@]}
do
echo "[$field,$((-100-${stats[$field]}))"
doneJa, ha a nullákat is ki kell írni, akkor simán a számokon kell iterálni, nem a tömbön:
for ((field=0;field<14;field+=1))
do
echo "[$field,$((-100-${stats[$field]:-0}))"
done -
bambano
titán
válasz
Headless #1988 üzenetére
nekem az a problémám ezzel, hogy ha shellben akarod kiértékelni a bájtokat, akkor azt a shell megpróbálja értelmezni. tehát a "$data" behelyettesítéskor nem tudom, hogy mi történik az adatokkal.
ezért lenne jobb ideiglenes fájlba letenni, vagy buherálni kicsit a fájldeszkriptorokkal... mktemp-pel tudsz biztonságosan ideiglenes fájlnevet csinálni.
utána
head -c 65536 dexter.mp4 >$tempfile
tail -c 65536 dexter.mp4 >>$tempfile
md5sum $tempfile"Rosszul értelmeztem a leírást?": nem, én voltam figyelmetlen.
szerk: ez jónak tűnik:
cat <(head -c 65536 dexter.mp4) <(tail -c 65536 dexter.mp4) | md5sum
-
bambano
titán
válasz
Headless #1986 üzenetére
dd-vel így lehet 64k-t beolvasni egy fájlból:
dd if=filenev bs=1024 count=64 of=tempfile
megfordítani egy fájlt a tac paranccsal lehet, tehát a végéről így lehet olvasni dd-vel:
tac filenev | dd bs=1024 count=64 | tac >>tempfileés md5sum tempfile
expertebb júzerek használhatják a head és a tail parancsokat is.
szerk: bocs, elfelejtettem visszafordítani a bájtokat.
-
válasz
Headless #1972 üzenetére
Erre a problémára az az általámos megoldás, hogy a kapcsolók után írsz egy dupla kötőjelet:
cat file | grep -- "$var"
Ez nem csak grepnél működik, hanem úgy általában a mindenféle command line tooloknál (az 1992-es POSIX.2 szabványban szerepel irányelvként, hogy ennek így kellene működnie).
Új hozzászólás Aktív témák
- Le Mans Ultimate
- Vezetékes FEJhallgatók
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- PROHARDVER! feedback: bugok, problémák, ötletek
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen CPU léghűtést vegyek?
- Egyelőre nagy siker a Nintendo Switch 2
- Okos Otthon / Smart Home
- Elszívja a vezetőket a big tech, de ez nem tetszik az EU-nak
- Motoros topic
- További aktív témák...
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- 27%-OS ÁFÁS SZÁMLA I Jogtiszta Microsoft digitális és fizikai termékek I DIGITALKEYZ.COM
- Azonnali kézbesítés az év bármely pillanatában
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával - Nint.hu
- IKEA (HAVREHOJ) tablet tartó
- MacBook felvásárlás!! Macbook, Macbook Air, Macbook Pro
- 2 TB-os Kingston NV3 M.2 SSD - 6000 MB/s olvasás
- GYÖNYÖRŰ iPhone SE 2020 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2183, 100% Akkumulátor
- Dell USB-C, Thunderbolt 3, TB3, TB4 dokkolók (K20A) WD19TB/ WD19TBS/ WD22TB4, (K16A) TB16/ TB18DC
Állásajánlatok
Cég: FOTC
Város: Budapest