Szkriptek: Python, Perl, Bash, ...

synology házi szerver

 ( pgabor | 2012. május 20., vasárnap - 21:48 )

sziasztok,

Az alábbi NAS-on szeretnék egy bash scriptet futtatni:
http://synology.hu/?oldal=termek_ds112j

A problémám az hogy a következő sorra hibát kapok:
YESTERDAY=$(date -d "yesterday" +"%Y%m%d")

A "yesterday" és a "1 days ago" sem működik.

Ez a sor ubuntu alatt hibátlanul lefut. Van valakinek ötlete, milyen módon hivatkozhatnék a tegnapi napra ezen a masinán?

Packages fájl szűrése

 ( rezso | 2012. május 20., vasárnap - 17:25 )

Sziasztok.

Azt szeretném megnézni, hogy a Packages fájl szerint melyik az a nem -dev csomag, aminek van -dev csomag függősége.
Mivel nem csak a telepített csomagokat szeretném ellenőrizni, ezért használnám a Packages fájlt.
Elméletben tudom a megoldását, csak gyakorlatban nem...

C++ dll-bol char** Python-ba

 ( sza2king | 2012. május 16., szerda - 11:21 )

Udv,

Van egy C++-ban irt .dll aminek a fuggvenyeit Python-bol kellene meghivnom. Hogyan tudnam Python-bol hasznalni a kovetkezo szignaturaju fuggvenyt?:

int func (char **);

Az alabbi mukodik, de itt ugye csak char * es nem char ** van:

GetDeviceName = Debug.GetDeviceName
Debug_GetDeviceName.restype = c_int
Debug_GetDeviceName.argtypes = [c_char_p]

status = SiDebug_GetDeviceName(name)

Koszi,

/sza2

Ftp feltöltés után ellenőrzés

 ( Chas | 2012. május 14., hétfő - 9:50 )

Kedves fórumozók!

Bash problémával kapcsolatban kérném segítségeteket.

perl - regex - több egymásutáni szóköz kitölrése szövegben, kivéve ha az zárójelben van

 ( doors | 2012. május 9., szerda - 20:24 )

Sziasztok,
a problémám, hogy normalizálni szeretnék egy szövegfájlt, a sok felesleges szóközt ki törölni. Ahol több a szóköz mint egy, ott egy üres szóköz legyen. A szövegfájlban viszont vannak olyan szövegek, amik zárójelbe vannak, azon belül nem szabad normalizálnom.

Az eredeti szövegre példa:

field analysis_version           datatype packed_decimal      default  '         1'

ezzel:

$line =~ s/\s+/ /g;

a következőt kapom:

field analysis_version datatype packed_decimal default  ' 1'

egysoros fajlba iranyitas

 ( fezo | 2012. április 28., szombat - 20:20 )

A gugli segitsegevel sikerult osszetakolnom egy kezdetleges szkriptet, ami konzolra kiirja az eloado nevet es a dal cimet:

mplayer http://icecast.bigrradio.com/80smetalfm.pls | while read line; do echo $line | grep -e "StreamTitle=" | awk -F "'" '{print $2}'; done

Ennek a kimenetet szeretnem egy olyan fajlba iranyitani, ami csak egy darab sorbol all es ez mindig felulirodik, sajnos nem jovok ra hogyan kell ezt csinalnom. Ezert kernem a ti segitsegeteket.

Ugy kepzeltem el, hogy ennek a fajlnak a tartalmat fogom majd megjeleniteni a conky-ban.

perl - test- and- set

 ( fn26 | 2012. április 25., szerda - 8:25 )

Hello!

Valami test- and- set tipusu megoldast keresek perlhez (nem szalak, hanem processzek kozott). Tehat valami olyasmit, ami oszthatatlanul biztositja, hogy egy "szemaforszeru" dolgon a program csak egyedul tud tuljutni, mas folyamat csak akkor, ha O mar "tilosra" allitotta a szemafort.

Ha valami perlbol meghivhato dologrol tudtok, ami konnyen hasznalhato, az is jo lenne.

Koszi.

[megoldva] Szövegfájl elejére egy sor

 ( szz | 2012. április 21., szombat - 16:05 )

Időnként előfordul, hogy egy szövegfájl elejére kell tennem egy (fejléc vagy cím) sort utólag.
Van erre más, szebb megoldás, mint ez? cat fejlec > a; cat nagyfajl >> a; mv a nagyfajl

Perl File::Copy ERROR

 ( lzs | 2012. április 17., kedd - 18:55 )

Szeretném egy állományban (T.txt) letárolt file nevek alapján a file-okat másolni.
Teszem ezt így:
# Perl 5.8.8 version on Debian
#!/usr/bin/perl

use File::Copy;
use Cwd;
use strict;

chdir ("/Dir_PATH");

my $basedir = "/Dir_PATH";
my $TFILE = "$basedir/T.txt";
my $line = "";
my $cwd = getcwd();
#print "$cwd\n";
open(FILE, "$TFILE") or die("Could not open $LOGFILE file.");
foreach $line () {
my $dircopy = "$basedir/COPY/$line";
#print "$line\n";
copy ($line, $dircopy);
#system ("cp $line $dircopy");
}
close (FILE);

Ez lesz belőle:

bash script több nyelven

 ( Nextra | 2012. április 17., kedd - 13:42 )

Készítettem egy scriptet, és szeretném ha több nyelven is elérhető lenne, ha egy lang változó átállításra kerül a config fájlban.
Jelenleg ezt úgy oldottam meg hogy van a lang fájl, és abban String001="valami szöveg" van.
Igen ám, de így egészen átláthatatlan a script, mert nem tudom hogy mi hová tartozik.
Például:

while true; do
echo -n "${Cyan} ${String056} (y/n) "
read answer || break
answer_control_yn
error_level
done
if [ "${answer}" = "n" ]; then
echo -e "${Red} ${String057} ${NC} \n \r"
sound_mute
exit
fi

[Megoldva] awk kérdés

 ( Nextra | 2012. április 16., hétfő - 23:20 )

Van ez a részlet egy mencoder végén.

mencoder blabla
-o ${movie_path}_${_date}.avi 2>${movie_path}_${_date}_error.log | tee ${movie_path}_${_date}_message.log | awk -vFS='s' -vRS='\r' -vORS='\r' '/^Po/ {print " A felvétel aktuális ideje [mp]" $2}'

A kérdés hogy ez a szöveg: A felvétel aktuális ideje [mp] lehet-e valamilyen formában egy változóban?

Például: szoveg="A felvétel aktuális ideje [mp]"

Tehát csak a vége
'/^Po/ {print " ${szoveg}" $2}'

Az biztos hogy így nem működik.

cd-rom állapot lekérés

 ( badbull | 2012. április 6., péntek - 12:48 )

Sziasztok!

Olyan kérdésem lenne hogy hogyan tudnám lekérdezni/feldolgozni azt hogy melyik cdrom egység tartalmaz lemezt.
A gépben több cd egység is található. Az eredményt parancsfájlban szeretném feldolgozni.
Én kezdőként a hwinfo awk párossal próbálkozom. Bármely más vagy konkrét használható megoldást szívesen veszek.
itt tartok:
xxxx:/home/user # hwinfo --cdrom | awk '/CD-ROM/ {print $1} ; /\/dev\/cdrom/ {print $3} ; /Drive status:/ {print $3}'
47:
/dev/sr0,
48:
/dev/sr1,
no

az építő válaszokat előre is köszönöm!

Keyboard Shortcut küldése scriptből

 ( Mik | 2012. március 27., kedd - 11:10 )

Sziasztok!

Igazából azt sem tudom, hogy merre induljak el, ezért kérdezlek Titeket.
Van egy Linux-os kiosk-om, minden szép és jó, kivéve, hogy a felhasználók legtöbbször úgy hagyják ott ahogy kedvük van. Persze nem kritikus probléma, csak a kalandvágy kedvéért:
- lehetne-e parancssorból X-es alkalmazásnak (chromium) billentyű lenyomást küldeni (ALT + HOME)? Ha igen, mivel? *
- lehet e valahogy az xscreensaver-nek külső parancsot beállítani, avagy lehet e az egér inaktivitás függvényében scriptet indítani? Ha igen, mivel? **

shell levágás

 ( eriktoth | 2012. március 20., kedd - 1:50 )

Üdv!
Shell scriptben hogyan tudnám azt elérni, hogy mindent ilyen formában tudjak kiírni:

abc/def/xyz

és ne így:

./abc/def/xyz

már próbálkoztam sed-el, awk-al, cut-al, egyik sem jött be, teljesen tanácstalan vagyok, minidg csak a végéből sikerült levágnom a ./ -t soha.

Előre is köszönöm a tanácsokat

[Megoldva] Bash scriptelés, string eltávolítás

 ( tmms | 2012. március 17., szombat - 12:45 )

Sziasztok!

Van egy olyan problémám, hogy egy log fájlból kellene bash scriptel kiszedni bizonyos részeket.
A részek < és > karakter között vannak. A < és > karakterekkel együtt kellene eltávolítanom.
Arra gondoltam, hogy egy tömbszerűségben meg lehetne adni azokat a részeket amiket ki akarok szedni, és a végeredményt egy másik fájlba menteném.

Ha valaki tudna segíteni, megköszönném.

Python attribútumok öröklődése

 ( _jack_ | 2012. március 16., péntek - 14:43 )

Sziasztok!

Némi elméleti segítség kéne, hogy hogyan is kell Pythonban gondolkodni. Egész eddigi életemben vagy statikus típusrendszerű, erősen típusos nyelvekben programoztam, vagy olyan nyelven, ahol amúgy sem nagyon lehet ellenőrizgetni a paramétereket (Perl, Bash, stb.). Szóval nehezen megy az átállás a Contract Based Developmentről a Test Driven Development Pythonos verziójára, ahol Duck Typeing van + sok unit teszt.

Python: E-mail címek

 ( mt3c2x8a | 2012. március 6., kedd - 20:51 )

Van egy e-mail címeket tartalmazó fájlom. Addig eljutottam, hogy tömbbe rendeztem őket. Rengeteg hibás e-mail cím van a listában. Hogyan tudom ezeket javítani? A szóközöket már kitudtam venni a címekből, ami kellene még:

  1. Nagybetűket kisbetűkre alakítani.
  2. Ékezetes karaktereket átalakítani (angol ABC).
  3. Speciális karaktereket törölni.

... vagy nem kell átkonvertálni csak egyszerűen ismerje fel, hogy valós vagy sem az e-mail cím.

Kezdő programozó vagyok. A segítséget előre is köszönöm.

csillag az argumentumokban

 ( tovis | 2012. március 5., hétfő - 21:44 )

Régi tervem, hogy írok egy kis scriptet ami roppant rövid email -ket küld nekem, lokálisan (exim4 smart host). A levelek és a küldési időpont a crontab bejegyzéseihez hasonlítana, így valahogy:
* 03 07 08 * tovis@localhost "Tamás névnap" "Tamás barátom"

A mezők sorban: év,hó,nap,óra,perc,címzett,téma,tartalom
Ezek amolyan emlékeztetők lennének. Eddig jutottam:

check_stamp()
{
  # itt kellene az időt ellenőríznem
}
grep -v '^#' $1 | while read ROW
do
  check_stamp $ROW
done

[megoldva] Urandom alapú randomizálás bash nyelven

 ( strygg | 2012. március 5., hétfő - 20:44 )

Bash nyelven szeretnék egy listát úgy rendezni véletlenszerűen, mint ahogyan a sort --random-sort csinálja, viszont szeretném explicit módon megmondani neki, hogy a /dev/urandom (később saját device) legyen a randomizáció alapja. Létezik erre függvénykönyvtár? Ha nem, hogyan oldhatom meg? Más nyelv egyelőre nem játszik.

[MEGOLDVA] tree parancs -I opció nem működik, vagy csak nem értem

 ( Nextra | 2012. március 1., csütörtök - 22:34 )

Ha jól értelmezem a man-t ,akkor a -nagy I betű opcióval megadhatom a tree parancsnak hogy milyen sorokat ne listázzon ki.
Egy teszt mappában mindenféle kiterjesztésű fájlok vannak, és egy bizonyosat, mondjuk az .srt végződésűt nem szeretném vele kiíratni.

man tree
-I pattern Do not list those files that match the wild-card pattern. (Ne sorolja fel azokat a fájlokat, amelyek megfelelnek a mintának.)

$ tree -I *.srt
Power Kids.2009.720p.BluRay.x264-LCHD.eng.srt [error opening dir]

0 directories, 0 files

Python 3

 ( daroczy | 2012. március 1., csütörtök - 9:32 )

Robert Cordeau (IUT d’Orsay) - Introduction à Python 3 című - nem informatikusok számára tartott Python-kurzusa jegyzetét lefordítottam.

Megtalálható :
Bevezetés a Python 3-ba

perl : not a CODE reference at ...

 ( iwanabeguru | 2012. február 28., kedd - 11:24 )

Hi all

Írtam egy perl scriptet ami egy logfájlból a felprefixelt bejegyzések alapján egy reportot épít.
A report bejegyzésekhez tartozhat alszekció amit úgy hozok létre, hogy a report bejegyzést készítő subroutinenak átadom az alszekciót legenráló subroutinet attól függően hogy milyen alszekcióra van szükség.

Ez a mai napig gyönyörűen ment is de ma reggel miután módosítottam az egyik alszekció generáló rutint elkezdett hibát dobni. Miután visszaálítottam a módosítás előtti állapotot akkor sem lett jó.

Újabb regex kérdés

 ( Polesz | 2012. február 22., szerda - 13:07 )

Az alábbi sorokból szeretném kiszedni az alábbi dolgokat:

Szállítási költség 1.025,00 x 0,8500 871,25 EUR
Valamilyen díj 1,00 x 17,4900 17,49 EUR
További szöveg 40 szám és egyéb 1,00 x 100,1900 100,19 EUR

Tehát szeretném kikapni az alábbi dolgokat belőle:

1. Szállítási költség
2. 1.025,00
3. 0,8500
4. 871,25

És a következő sorokat is ugyanúgy szétkapni.
Tehát az elején a szöveg mindig változik.

Ha a szöveg mindig ugyanaz lenne sikerülne is, de így lövésem sincs hogy szedjem szét.

Érdekes tree parancs

 ( Nextra | 2012. február 21., kedd - 18:38 )

Adva vagyon egy Hitachi 2terás vinyó melyről az alábbi paranccsal szoktam készíteni egy listát:

tree --charset UTF-8 -N /media/mobilrack_03/Filmek/ > /mnt/Dokumentumok/Txt/mobilrack03.txt

Azt vettem észre hogy egyes fájlokat kihagy. Jelenleg 2-ről tudok.
Az "ls" mutatja, a "tree" nem.

Próbáltam már átnevezést, letörlést, újbóli másolást más névvel, újra átnevezve, de hiába. Ékezeteket kihagyva, betéve, ugyanígy szóközökkel is.
A film ott van, és le is lehet játszani. A "tree" viszont még akkor sem listázza ki, ha direktben belépek a mappába.

grep -A1 "valami" hatásrára érdekes sorok jelnnek meg....

 ( kanyi | 2012. február 21., kedd - 16:41 )

Sziasztok!

Ez lenne a parancs. grep -A1 "valami"

Ha valaki használta már így a grepet, meg tudná mondani, hogy miért van az hogy helyenként beszúr egy-egy sort? Amiben láthatóan csak két jel van: --