- QNAP hálózati adattárolók (NAS)
- Windows 11
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Az USA nem akarja visszafogni Kína növekedését
- Synology NAS
- Mesterséges intelligencia topik
- Xiaomi AX3600 WiFi 6 AIoT Router
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
- Az Apple iPadOS-t is megrendszabályozza az EU
- Otthoni hálózat és internet megosztás
Új hozzászólás Aktív témák
-
ngabor2
nagyúr
van egy ilyen kis szkriptem:
#!/bin/bash
rm -rf mp3dir
stdir=`pwd`
koz=''_''
mkdir mp3dir
mpdir=$stdir/mp3dir
k=0;
find . | grep \.mp3$ | sort > mp3list.txt
i=`wc -l mp3list.txt | cut -d'' '' -f1`
for j in `seq -w $i `
do
mpfile=`cat mp3list.txt | head -n $j | tail -n 1;`
mp=`basename ''$mpfile''`
cp ''$mpfile'' $mpdir/''$j$koz$mp''
done;
működik rendesen (mp3-albumokat sorszámoz, és 1 kt-ba pakolja. egyes mp3-lejátszóknál jól jön), csak nem túl elegáns, hogy mindig létrehoz egy mp3list.txt állományt. meg lehet-e oldani, hogy ne egy file-on keresztül kelljen sorbapakolni a file-okat, hanem pl. egy változóba, vagy valami hasonló, memóriában helyet foglaló cuccban? vagy ha úgy macerás, akkor egy tmp-file-ba (tehát szabályosan kezelje a /tmp könyvtárat, véletlenszerű névvel)? -
ngabor2
nagyúr
na ez az! köszi.
a szkript kb. 1 éve kezdődött, eddig 5 verziót élt meg, és közel 0 szkriptelési tudással kezdtem neki.
az eredeti ''probléma'' az is volt, hogy nem tudom, hány számjeggyel számozom a file-okat, de ez a legtöbb esetben 3. a seq -w is emiatt került bele, azelőtt egy 3-részes if-sorozat volt benne, de az annyira gányul nézett ki, hogy szörnyű
most is igaz, hogy a legegyszerűbb dologra nem gondoltam, pontosabban ezt a módszert nem ismertem. -
ngabor2
nagyúr
egy némító/visszaállító szkriptet kellene összehozni. addig már eljutottam, hogy az aumix -q kiírja a hangerősséget
vol 90, 90, R
pcm 45, 45
mic 100, 100, P
igain 0, 0
alakban.
grep vol, aztán megfelelően formázott cut, esetleg sed, és megvan a 2 érték. ezt praktikusan egy változóban tárolnám.
export left1=`aumix -q | grep vol | cut -d'' '' -f2| sed s/,//`
export right11=`aumix -q | grep vol | cut -d'' '' -f3| sed s/,//`
és innentől nem áll bennem össze a kép... az if-et sose szerettem
lefut a szkript, megnézi, hogy némítva van-e (futott-e már előtte, ami némítást okozott, pl. $mute értéke 1-e). ha igen, akkor visszaírja a left1/right1 értékét, pl.
ha a hangerő értéke 0, akkor left1/right1 értékére kellene beállítani.
rexima vol $left1,$right1
ha még nem futott, tehát nincs $mute, akkor export mute=1, aztán a fenti 2 érték elmentése, majd némítás,
rexima vol 0
valaki megcsinálná a keretet hozzá? -
ngabor2
nagyúr
van egy ilyen egyszerű kis szkriptem. ha nincs szóköz a kt-k nevében, akkor megy is rendesen. csakhogy nekem most épp olyan könyvtáraim vannak, amikben van szóköz... próbáltam idézőjelbe tenni a $i-t, az se segített. ötletek?
#!/bin/bash
for i in $(find . -type d); do
cd $i
unrar x *rar ..
cd ..
done -
ngabor2
nagyúr
ez a szkriptelés folyton kifog rajtam...
alapszitu: [link]. első lépésben megpróbáltam volna a /var/mail/mdir/cur/1176832301.000002.mbox\:2\, nevet átalakítani, pl. csak a 2. tagot megtartani, mert csak abban különbözik.
a find . -type f -print ki is írja őket sorban, ezután fűzve a cut -d. -f3 kivágja a megfelelő részt. csakhogy nem tudom megcsinálni, hogy az eredeti név is megmaradjon, és át is tudjam nevezni.
igaz, ezzel a lényegtől kanyarodok el, procmaillel kellene ezeket a file-okat megetetni, hogy szépen helyérepakolja őket a rendszer (elég szép hosszú a .procmailrc-m...). kifogytam az ötletekből. -
ngabor2
nagyúr
üdv guruk.
itt egy kérdés. én nulladik körben ezt válaszolnám:
find . -type f | grep mp3$ | \
xargs lame --mp3input --cbr -b 128 '{}' conv/'{}'1 baj biztos, hogy van vele, tapasztalatom szerint a lame nem fogja szeretni a conv/./akárni típusú path-ot. én kevesebb file-lal, másként, nagyon nem elegánsan oldottam meg ezt a problémát, de azt nem írnám be. ötletek?
(csak azért törtem a sort, hogy mindent lehessen látni)
esetleg
find . -type f | grep mp3$ | \
xargs lame --mp3input --cbr -b 128 '{}' tmp.mp3 && \
mv tmp.mp3 conv/'{}'[ Szerkesztve ]
-
ngabor2
nagyúr
úgy tudom, hogy kiértékelődik... de ebben nem vagyok 100%-ig biztos. lehet, hogy az idézőjelbe tett $akármivel keverem?
az alaphelyzet az, hogy nagyon sok kt, nagyon sok file-lal. ezért gondoltam az xargs-ra, mert abba biztos, hogy befér, hisz arra tervezték.
én személy szerint úgy oldottam meg korábban, hogy egy file-ba tettem az eredményt, és abból szedegettem ki egyenként a sorokat, nagyon fapasod módszerrel, amit nem akarok beírni, mert bár működik, nem elegáns.
-
ngabor2
nagyúr
van egy szöveges file. ebben kellene a sorok sorrendjét megfordítani.
meg egy szót másikra kicserélni, de az a sed 's///g'-vel menni fog.
-
ngabor2
nagyúr
no, erre senki?
nekem csak igen csúnya megoldások jutnak eszembe, biztos, hogy vannak sokkal egyszerűbbek is...
(pl. wc -l-lel megvan, hogy hány soros. tail/head párossal mindig kiolvasom egy ciklusban hátulról a köv. sort, és azt egy másik file-hoz fűzöm. ez kifejezetten csúnya szerintem, nem is írtam meg.)
[ Szerkesztve ]
-
ngabor2
nagyúr
adva van egy könyvtár, benne filenevek, aik nemtudom milyen kódolással vannak, _20 van szóköz helyett bennük például. ezt szeretném "értelmes", olvasgató formába hozni egy szkripttel, de valamit megint nem tudok...
#!/bin/bash
for i in *avi; do
uj= sed 's/_20/\ /g' < echo $i;
mv "$i" "$uj"
donelehet, hogy a ;-k is rosz helyen vannak. valami nagyon alap dolgot szúrok el benne, az biztos.
-
ngabor2
nagyúr
kellene hirtelen felindulásból gyártanom egy szkriptet, ami rácspontok helyét számolja ki, és a sorrendet felállítja. egy olyan kütyühöz kellene, ami egyik soron oda, a következőn visszafele halad, tehát ezt se tudom pillanatnyilag, hogyan csináljam, de töröm rajta a fejem.
ami viszont pillanatnyilag fontosabb: hogyan tudok futás közben adatokat átadni a szkriptnek? indulás előtt paraméterezés oké, de indulás után kellene sorban beadni a pontok számát soronként és oszloponként, meg a szélső koordinátákat.
igazából majdnem mindegy, miben íródik, csak a shell szkripthez értek valamennyire.
-
ngabor2
nagyúr
van egy lista, amiben mindössze néhány féle szó van, de azok többször. ezt kellene megszámolni, hogy ki hányszor, és sorba állítani őket.
megszámolni én is meg tudom (grep szó file | wc -l), csak azt nem tudom hirtelen, hogy hogyan lehet megcsinálni, hogy maga a szkript keressen rá az egyes szavakra (sort | uniq ad egy listát).
for i in $(sort lista.txt | uniq) do
ez valszeg benne lesz (ciklust sose bírtam helyesen írni...)
grep $i lista.txt | wc -l
ez fogja adni a számot... csak ezt is valami változóba, vagy egyből egy file-ba/kimenetre kellene írni, a $i elé.
erre kérnék valami kultúrmegoldást.
-
ngabor2
nagyúr
köszi mindenkinek, ez lett a megoldás:
cut -d \] -f2 file.txt | sort | uniq -c | sort -nr
néha nem árt a man-okat megnézni, mert kiderül, hogy egy kínszenvedve összetákolt szkript egy kapcsolóval helyettesíthető
-
ngabor2
nagyúr
fiatalok, ne ezt a topikot flameljétek tele debian-flame-mel. sőt, uinkább egyiket se. thx.
-
ngabor2
nagyúr
lenne egy nem túl bonyolult problémám, valszeg egyetlen ciklussal (ügyesebbeknek egy sorral) is megoldható, csak én lusta vagyok
szóval van egy könyvtár, abban képfile-ok. IMG_xxxx.JPG a nevük, az xxxx egy sorszám. ezeket kellene átnevezni kep_yymmddxx.jpg-re, ahol az yy az év, a mm a hónap, dd a nap, xx meg egy sorszám 01-től. a dátum a létrehozás, vagy az utolsó módosítás dátuma, nem az aktuális.
-
ngabor2
nagyúr
van kb. 50GB-nyi fénykép, 7 év termése. ezek egy könyvtárrendszerben vannak szépen rendezve. a felbontásuk általában elég nagy, 2-16 Mpixeles képek, vegyesen. álló és fekvő tájolás, szintén vegyesen.
ezeket kellene 1024x768-ra, vagy fekvő esetben 768x1024-re konvertálni. van pár kivágott kép is, aminek nem 4:3 az aránya, az így járt, ha bonyolult értelmesre átméretezni. itt adtam fel a küzdelmet...
sima rekurzív átméretezésre találtam megoldást, de a mennyiség miatt vagy xargs kellene hozzá, amihez nem konyítok, vagy először egy listába kiírni a fileneveket útvonallal. ez utóbbi, bár fapadosabb, nekem szimpatikusabb lett volna.
-
ngabor2
nagyúr
válasz bambano #1125 üzenetére
a képek között akad pár videó, amit értelemszerűen nem kell/lehet átméretezni, viszont nem ártana átmásolni a célmappába. tehát akkor a feladat finomodott: ami kép, átméretezni, ami nem kép, átmásolni.
a képek mind jpegek, igaz, van kis és nagybetűs is. kiterjesztés szerint *.[jJ][pP][gG] (asszem jpeg kiterjesztésű nincs, hisz fényképek, a gép meg 3 betűt ad neki.)
[ Szerkesztve ]
-
ngabor2
nagyúr
Egy gyűjtőmunkát szeretnék egy szkripttel meggyorsítani. Részben már meg is van, kaptam igen hathatós segítséget.
Most viszont egy php-s részt kellene működőképesen leszedni. Van a Cégközlöny, ahol folyamatosan jelennek meg az új cégek. Sok-sok sorból állnak, 50-esével rendezve. Ami nekem kell, azoknak a nevét, sorszámát kigyűjtöttem, sőt a dowload.php-hoz tartozó paraméterek is rendelkezésre állnak (így lehet, hogy zavaros, de ha megnézitek az oldalt, akkor érthető lesz).
Tehát például egy jellemző táblázatsor így néz ki:
<tr>
<td width="15" align="right" class="szoveg">1.</td>
<td width="60%" class="szoveg" align="left">cégnév</td>
<td align="center" class="szoveg">xx-xx-xxxxxxx</td>
<td align="center" class="szoveg" width="120">Új társaságok bejegyzése<br></td>
<td align="center" class="szoveg" valign="middle" width="50"><form method="post" action="download.php" target="_blank" style="margin:0px;"><input type="hidden" name="ajdi" value="7167785" /><input type="submit" value="letöltés" name="subbut" class="szoveg" /></form></td>
</tr>Az utolsó sorban szerepel, hogy melyik letöltőoldal nyíljon meg. Viszont ez érthető módon csak az eredeti oldalba beépítve működik. Ki lehet szedni ezt, és át lehet tenni egy másik fájlba, hogy ott is működjön?
Vagy a fenti php-nak címsorban nem lehet átadni a szükséges paramétereket? Mert akkor minden letöltéshez lehetne 1-1 címet generálni, amit azután be lehetne tenni egy nagyon egyszerű oldalba.
Csavar benne, hogy a mutatott oldalon sok esetben több lap van, amiket csak captcha beírásával lehet letölteni. Ezt nem lehet megkerülni, de legalább a monoton részét szeretném automatizálni.
[ Szerkesztve ]
-
ngabor2
nagyúr
Újabb, életszerű és nehéznek tűnő probléma: elírt szavak keresése. Az előző feladathoz kapcsolódik. A szkript megtalálja a szövetkezet szót, de pl. ha ki van belőle hagyva egy betű, vagy fel van cserélve, akkor már nem. Keresgélek programokat, amit be tudnék illeszteni, és a szavakat egyenként be lehetne neki adni, hogy nézze meg: azonos, hasonló, vagy semmi közük egymáshoz. A hasonlót egy külön helyre gyűjtené, az azonossal meg ugyan úgy bánna, mint eddig. Egyelőre eddig jutottam, külön álló programot még nem találtam.
(Ahhoz képest, hogy egy egyszerű szűrő-szkriptnek indult, már elég sok dolgot kellene tudnia )
-
ngabor2
nagyúr
-
ngabor2
nagyúr
Felmerült még egy kérdés a szkripttel kapcsolatban: win alól futtathatóvá lehet valahogy tenni? A cygwin-t nézegetem, de ahogy látom, nem ez lesz a barátom. Ezen kívül win alá kellene a wget és a grep, nomeg a seq se árthat. wget az van, használtam is. De a másik kettő...
Az időközben teljesen átszabott szkript amúgy így néz ki:
#!/bin/bash
echo -n "Közlöny száma: "
read -e szam
echo -n "Oldalak száma: "
read -e oldal
cp /home/ngabor2/kozlony/fej.html /home/ngabor2/Asztal/szoc$szam.html
for i in $(seq 0 $oldal);
do
wget -np http://cegkozlony.hu/index.php?pagename=atkual\&oldal=$i\&friss_ev=2014\&friss_szam=$szam -O - | grep szociális -i -B 2 -A 3 -h | grep szövetkezet -i -B 2 -A 3 -h >> /home/ngabor2/Asztal/szoc$szam.html
doneA fej.html egyszerűen egy táblázat fejléc, amit az eredeti oldal is használ, meg egy új sor: <base href="http://cegkozlony.hu"> .
Lényegtelen mellékkérdés: miért kerül bele a végeredménybe jópár "--" elválasztó karakter, és hogyan lehet kiszedni? Tippre a grep teszi bele.
-
ngabor2
nagyúr
válasz ngabor2 #1732 üzenetére
Alakulok, alakulok, de még messze vagyok még.
A pontos megoldássan beírt "Szociális Szövetkezet"-eket gond nélkül megtalálja a lenti szkript.
Viszont a hasonlók kigyűjtését legfeljebb elméletileg bírtam végigvinni, vagy úgy se.
Első részfeladathoz egy kis segítség magamnak:
#!/bin/bash
string="elem1 elem2 elem3"
hossz=$(echo $string| wc -w)
for i in $(seq $hossz)
do
echo $(echo $string | cut -d" " -f $i)
doneEz egy többszavas sorból egyenként adja vissza a szavakat (biztos van rá alapból egyszerűbb módszer ). Az utolsó előtti sor első echo-ja helyett mehetne az összehasonlítás. Ezt kell a Jester által írt progival összehasonlítani 4 szóval (mert a 2 szó lehet végig nagybetűvel is). Ahol egy sorban 2 db 0 van, azt a korábbi szkript is megtalálja. Ha egy 0 van benne, a többi nagy szám, az nekünk nem kell. Ha viszont van 2 kis szám (pl. 5 alatti, az egyik akár 0 is lehet), akkor az a szakasz kell.
Ami nekem problémát okoz, hogy egyrészt oldalanként 50 darab 5 (pontosabban 7) soros szakasz 3. sorának egy részletét kell vizsgálni, és ha ott van 2 hasonló, de nem azonos szó, akkor azt a szakaszt változatlanul át kell másolni egy fájlba. És ez meg sok-sok oldalon keresztül...
Egy másik fórumtárstól kaptam egy awk szkriptet, amivel a html-ből kiszedi a sorokat:
awk '\
BEGIN { IGNORECASE = 1; output = ""; }\
/<td width="15" align="right" class="szoveg">/ { match($0, ">(.*?)<", a); output = a[1]; }
/<td width="60%" class="szoveg" align="left">/ { match($0, ">(.*?)<", a); output = output "; " a[1]; }
/<td align="center" class="szoveg">/ { match($0, ">(.*?)<", a); output = output "; " a[1]; }
/<td align="center" class="szoveg" width="120">/ { match($0, ">(.*?)<", a); output = output "; " a[1]; }
/--/ { match(output, ".*szociális.*szövetkez[^<]*", b); if ( b[0] != "" ) print b[0]; }
' szoc.txtEbből igazából csak a /<td width="60% kezdetű részre, meg a körítésre van szükség, és az ebben levő szavakat kell vizsgálni. Viszont hogy határozatlan mennyiségű számból hogyan lehet megállapítani, hogy van-e benne 2 db 5 alatti, az már nem az én súlycsoportom... meg úgy egy az egyben az egész.
IMHO lassan eljut ez a projekt arra a szintre, hogy nem egy szkript a legkézenfekvőbb megoldás erre.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Vírusirtó, Antivirus VPN kulcsok
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Warhammer Online - Age of Reckoning (DE) Collectors Box (Figurával!)
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül