Szkriptek: Python, Perl, Bash, ...

adatok törlése ideiglenes fájl létrehozása nélkül.

Van egy fájlom, melyben csak időpontok találhatóak epoch formátumban. Van már megoldásom rá, de megoldható-e ahogy írtam ideiglenes fájl létrehozása nélkül rendbe rakni? A feladat az epoch-oz képest régebbi időpontok eltávolítása és sorba rendezése.

awk -v _now="${EPOCHSECONDS}" '$1 > _now {print $1}' < rectime.txt | sort | uniq > rectime_$EPOCHSECONDS.txt

Tesztkörnyezet fájlok tömeges átnevezéséhez

Sziasztok!

Segítséget szeretnék kérni egy bash szkripthez, amely egy szöveges fájlban tárolt fájlútvonal/fájlnév listából rekonstruálni tudja az eredeti  fájlútvonal/fájlnév szerkezetet egy teszt mappába. A fájloknak természetesen csak a neve és kiterjesztése lényeges, a tartalma lehet nulla hosszúságú/tartalmú állomány is.

Erre azért lenne szükségem, mert megörököltem egy olyan fájlrendszert, melyben rettenet hosszú mappa és fájlnevek találhatóak, gyakran megtűzdelve mindenféle egzotikus karakterrel (ékezet, pont, sok egymást követő pont, szóköz, felkiáltójel stb.). Ezekből a nevekből szeretném kiírtani a "problémás" karaktereket, melyre van már egy kész megoldásom, csak szeretném tesztelni is és megnézni a végeredményt mielőtt élesben ráküldöm a meglévő adatokra.

Példa:

./Adattár/Fotótár (archiv)/Történeti/Iskola/Homorszögi általános iskolai tanulók csoportképei az 50-es évekből/1958-59 Körmendy Tamás zenetanárral.JPG
./Adattár/Fotótár (archiv)/Történeti/Iskola/Homorszögi általános iskolai tanulók csoportképei az 50-es évekből/1954-55 Kovács Anna tanítónővel2.JPG
./Adattár/Fotótár (archiv)/Történeti/Iskola/Homorszögi általános iskolai tanulók csoportképei az 50-es évekből/1954-55 Kovács Anna tanítónővel1.JPG

Ebből kellene rekonstruálni a mappaszerkezetet és az üres fájlt.

Fájlok nélkül, csak a mappaszerkezetet a

xargs '\n' mkdir -p -- < teszt.txt

utasítással tudom rekonstruálni, viszont kellenének a fájlok nevei is.

Előre is köszönöm az ötleteket.

dátum idő számítások

A dátumokkal játszok, és most elakadtam. Ha hozzáadnék valamennyi napot a dátumhoz, akkor ugye ez működik.:

date --date +'4 days' - bár érdekes módon sokféle variációban: 4days, 4 day, +4day, +4days szóközzel, aposztróffal, anélkül. Vajon melyik a POSIX?

Viszont engem az óra perc is érdekelne. Hogy tudok neki megadni +3 vagy 4 napot úgy hogy megmondom neki hogy az óra fix. Még nem jöttem rá a szintaxisra. Vagyis van egy  teszem azt time="11:30" meg egy daY="5" az a lényeg hogy az az időpont kell nekem, ami a változókban szerepel. A mostani változó alapján ha a jelenlegi idő 2021-12-28 14:02 akkor hogyan számolhatom ki hogy az új időpont 2022-01-02 11:30 legyen? 

date -d "11:30 Next Monday" ezt is nézegettem, a felhasználáshoz, de nem lettem okosabb. Ugyanez nem működik a +5day esetén. date -d "11:30 +5day" Az óra változik, a nap nem. A sorrend változtatása sem segít. Gondolkodtam a date +'%s' bevetésén de ahhoz meg sokat kell váltogatni, meg ki kell valahogy számolni a plusz napokat. meg a következő hetet. mert a $daY nem lesz nagyobb mint 7. Ekkor jöhet képbe a date +'%u' is. Nem egyszerű. Egyszerű megoldást keresnék.
 

script meghívás

Érdekes dologra keresnék választ, megoldást. A feladat a következő. Van 3 futtatható szkript fájlom. A,B,C
Jelenleg  a C fájlt megtudom hívni a B fájlból, és ez a C el is végzi a dolgát. Ez a C többször is lefuthat, s ennek megfelelően adatokat exportál ki. 

Viszont most felmerült az, hogy az A fájlból is szeretném meghívni, de az adatok exportálása maradjon ki, mivel csak a legelső futásakor feldolgozott adatokra van szükségem. 
Gondoltam hogy ebbe az ominózus C fájlba berakok egy feltételt, hogy azt nézze ki hívta meg, s annak megfelelően exportáljon vagy ne. De nem tudom megoldható-e ez. S igen - mindezt bash shellben.

Python scriptból exe létrehozása függőségekkel Windows alatt

Sziasztok!

Eddig elvoltam a saját környezetemben, magamnak írtam scripteket, meg írtam Flask-kel webalkalmazást. Viszont most másnak is szüksége lenne az általam írt programra. Ehhez ugye Win alá futtatható exe-t kellene létrehozni. Próbáltam a pyinstaller-t, az auto-py-to-exe-t, de a probléma azonos: honnan szedi a lefordított program a beimportált és használt könyvtárakat? A libmagic-et megtaláltam, leszedtem a whl állományt. De kellene pl. jinja2 is. Ezeket a függőségeket hogyan tudom kielégíteni a fordítás után?

Előre is köszi a segítséget!

Üdv: Laci

feltétel vizsgálat

Sajna nagyon nem fog most az agyam.

Van egy ááá a francba. Az sem jut az eszembe mi a neve annak az eszköznek, amelybe két vinyó is be / ki tehető. Hub?

Na mindegy. Van pár vinyóm, melyet azért leszoktam ellenőrizni hogy fizikailag rendben van-e (fsck), majd a jogosultságok stb. Erre írtam is egy kis bash szkriptet, mely for ciklusból UUID alapon végzi a dolgot, de most kicsit bővíteném, hogy ne csinálja meg az ellenőrzést ha az x időn belül már megtörtént.
S itt most elakadtam. Ellenőrzéskor generál egy lista fájlt alap esetben is, és úgy gondoltam hogy ennek a módosítási idejét ellenőrzöm. A feltétel tehát megvan. El is végzi a dolgát, de ki is lép ugyanakkor. Persze mert ott az exit. Ami most nem jó, mert az lenne a cél, hogy mivel akár két vinyó is lehet a hubban, így ha az egyik már rendben van, ugorjon a másikra. 
Ha az is rendben van, akkor lépjen ki. Az ellenőrzési paraméterek mind szubrutinban vannak a for ciklus nem. while do nincs a szkriptben.  

tinyurl.com -os url "visszafejtése"

Sziasztok!

Van az alábbi PHP script, ami működik egy linuxos gépen, tehát a tinyurl-ról megkapom az eredeti linket (a valami nem valós!!! :)):

<?php

$u = 'https://tinyurl.com/valami';

function reverse_tinyurl($url){
    $url = explode('.com/', $url);
    $url = 'https://preview.tinyurl.com/'.$url[1];
    $preview = file_get_contents($url);
    preg_match('/redirecturl" href="(.*)">/', $preview, $matches);
    return $matches[1];
}

echo '<a href="' . reverse_tinyurl($u) . '">Értekezlet (Google CHROME alatt nyisd meg!!!)</a>';
?>

Ezt szeretném megcsinálni Python alatt, de akárhogy küzdök, nem sikerül.

Próbálom használni a dns.resolver modult, hogy a scripten belül megadjam a DNS szervernek a 8.8.8.8-at, de Timeout-ot dob a script.

 

Van ötletetek? A resolv.conf-ban benne van egyébként a 8.8.8.8

elemek/számok megszámlálása egy fileban

Sziasztok,

Van egy ilyen file formátumom (sokkal több számmal):

3,30,45,67,70
19,31,35,40,63
4,8,33,38,80
12,22,71,76,87
32,45,47,74,85
23,39,42,48,61
12,38,58,60,87
2,28,49,60,74
30,47,57,68,77
2,13,17,29,37
7,19,26,56,63
 

Szeretném benne megkeresni, hogy 1-30 -ig a számok hányszor fordulnak elő.

Eddig itt tartok:

szamoloFile = open("source.txt", "r")
data = szamoloFile.read()

for k in range(1,30):
    kiszamolt = data.count(k)
    print(k, kiszamolt)

Viszont erre kapok egy hibát:

kiszamolt = data.count(k)
TypeError: must be str, not int

Jó volna, ha az 1-s szám keresésnél az 10,11,12,13 stb nem lenne találat és így tovább a 2-3-4-5 stb számoknál.

 

Ötlet esetleg?

 

Köszönöm

a.

[MEGOLDVA] script/alkalmazas logfile szuresere adott mintara

Hali,

 

van egy alkalmazas naplom.  Minden egyes elinditott process ebbe a file-be rakja az uzeneteket (alkalmazas processek).

 

Ezt szeretnem a process id alapjan szurni. Utolag viszonylag egyszeru, mert egy grep-pel a pid-re es meg is van az eredmeny. De van amikor a process indulasatol eloben szeretnem nezni.

A process indulasakor kapom meg pid-et, igy amikor atvaltok a masik ablakra es az elokeszitett tail nap.lo| grep {PID} -et kitoltom gyakran elofordul, hogy mar le is futott.
Persze az is, hogy meg el sem indult (gyujti a fuggosegeket,) ...

Mielott nekiesek egy ilyen script megirasanak, es eltoltok vele heteket, erdekelne, hogy talalkozott-e mar valaki ilyennel? Marmint ami buffereli a logot, majd amikor megkapja a filter sztringet, akkor az addigi sorokat egyezes eseten kiirja, a kesobb jovoket meg mint a tail+grep kiloki?

 

Megoldas:

#!/bin/bash

PID=$1
LOG="nap.lo"

BUFF='grep ${PID} ${LOG}'
if [ $? -eq 0 ]; then
  # get the linenumber of the last match
  LINENUM=`grep -n "${BUFF##*$'\n'}" ${LOG}| cut -f1 -d:`
  # we do not need duplication from the grep and tail
  ((LINENUM=LINENUM+1))
else
  LINENUM=0
fi

echo "${BUFF}"
tail -F -n +${LINENUM} ${LOG} | grep ${PID}

Hogy kell ezt a titkosított videót dekódolni shellben?

Le akarom menteni ezt a videót.

F12 -> Development tools -> Network fülön láthatóak a különválasztott videofájlok (.ts) és a hangfájlok (.aac).

Példa a nulladik videóra, illetve a nulladik hangra.

Ez itt pedig az .m3u8 fájl amelyik tartalmazza a videofájlokat, ez meg a hangfájlokat. Ezekben a fájlokban található a kulcs elérhetősége, ott van az init vector is: IV=0x12345678901234567890123456789012.

Lementettem ezeket a fájlokat offline, és úgy rendeztem, ahogy az .m3u8 elvárja, és a VLC el is kezdi lejátszani (durván szaggat), szóval működhet a dolog.
 

Szeretném az összes videót/hangot dekódolni shellben, hogy aztán összefűzhessem őket ffmpeg-gel. De sehogy sem boldogulok az openssl progival. Mindig "bad magic number" hibaüzenetet kapok.

Tehát lementettem a nulladik videót, illetve a kulcsot (fájlnév: e21564b9-8c10-46a8-b713-93c6f32fc509) ugyanabba a folderba, majd kiadtam ezt:

openssl enc -d -aes128 -in index_4_0.ts -pass file:e21564b9-8c10-46a8-b713-93c6f32fc509  -iv 0x12345678901234567890123456789012

Próbáltam a kulcsot hexában megadni, úgy se volt jó. Tudja valaki hogy kell dekódolni a videót?