Szkriptek: Python, Perl, Bash, ...

Két fájl összefűzése

Sziasztok!

A gondom, hogy van két fájlom. Mindkét fájlban ugyan annyi sor. Az fajl_1-et kellene összefűznöm a fájl_2-vel úgy, hogy az első sor az első sorral legyen egy sorban, a második a másodikkal, stb.. A paste-vel próbáltam, de az összefésüli soronként és így a fájl_1 és a fájl_2 tartalma külön sorok lesznek.
Ötlet?

Köszi!

local time VS unix time (wakealarm, tvrecord)

tvrecord script
https://skydrive.live.com/?cid=5423872F011334ED&id=5423872F011334ED%211…

Hogyan oldhatom fel ezt a dilemmát? Hogy tehetném hordozhatóvá? A wakealarmnak unix formátumban kell megadni a bekapcsolási időt.
De nem mindegy hogy

secs=$(date --date "${month}/${day} ${hour}:${minute}" +%s)

vagy

secs=$(date -u --date "${month}/${day} ${hour}:${minute}" +%s)

Hogyan tudom meg hogy az adott gép milyen időt használ? A többit már elintézem egy if then-nel.

Oszlop törlése a fájlból

Sziasztok!

Ott akadtam meg, hogy van egy fájlom, amiből el kellene távolítanom egy bizonyos oszlopot. A fájlban ezeknek az oszlopoknak az elhelyezkedése a sor elejétől különböző, ellenben a végéről indulva ugyanaz.
Ki merre indulna el?

pl.:
1234, xdkfj, KIVÁGNI, 1, asdfg,
1234, xdkfj, qwert, KIVÁGNI, 1, asdfg,
qwert, KIVÁGNI, 1, asdfg,

Előre is köszönöm!

[megoldva] ffplay és/vagy szkript guru needed

Sziasztok,

ffplay segítségével játszanék le mobotix kameráról mxg steam-et. Szépen megy, alacsony késleltetéssel (persze ehhez szükséges opciók megadásával). De... Ha nagyon megváltozik a kép, pl eléteszem a kezem akkor beszaggat, majd úgy is marad, egyre nő a késleltetése, a frameate pedig 0.2 0.1-re is lecsökkenhet.
Amikor ez történik, akkor az ffplay státust sorában, ami normálisan így néz ki:
1342004912.60 A-V: 0.000 s:0.0 aq= 0KB vq= 47KB sq= 0B f=0/0
Na szóval az s:0.0 lesz egyre nagyobb. Sehol nem találtam meg ez mit jelenthet, a forásban nézelődve ez valami eldobott frame-ekből számolt érték.

1. megoldás: ha valaki tudja hogy ez mi és hogy lehet elkerülni, ez lenne a legszebb. -framedrop nem segít.
2. Csúnya hekk, de igazából megfelelne csak elakadok. Hátha ti gyorsabbak vagytok :-)

Szóval a szkript lényege az lenne, hogy ha ez az érték nagyobb mint 0.2, akkor indítsa újra a lejátszást. Odáig sem jutok el, hogy feldolgozzam a kiírt sort. Ez egy baromi gyorsan frissített sor, ami a sor végén 3 whitespace (nem tudom pontosan milyen) és egy ^M karaktert tartalmaz. Fájlba irányítva egyetlen baromi hosszú sor lesz, vi-ban megnyitva szépen látszik, nincs EOL. cat-tal kiíratva szépen visszatörölget, csak az utolsó blokkot íratja ki.

Amin szenvedek: line editorok (sed, awk stb) nem adnak ki semmit, mert amíg tart a stream, addig nincs sorvége, nyelik a pufferbe.
tr szépen elnyeli a ^M-et ha kérem, ő szépen eszi és továbbítja a szövegstream-et, de nekem az kéne, hogy valami a "...^M"-et cserélje sor végére, hogy ki tudjam szedni a nekem szükséges értéket. Más megoldásnak is örülök :-)

Kösz,
BaZso

[megoldva]bash: a ping nem eszi meg a változómat

Sziasztok!

Az előbb töröltem egy kérdést mert rájöttem a megoldásra, de most kiderült, hogy mégsem :)
a kódom:

#!/bin/bash
i=1
for line in `cat alhalozatok.txt`; #kiolvasom sorról sorra a txtből az alhálózatokat
do
ADDR=$line$i # két stringből összerakom az ipcímet
if `ping -c 1 $ADDR` > /dev/null 2>&1; then # tesztelem, hogy ping-e?
echo ping: $ADDR
else
echo nemping: $ADDR

fi

done
exit 0

cat alhalozatok.txt
10.0.1.
10.0.2.
10.100.1.
10.101.1.

a történet annyi, hogy egy alhálózatokat tartalmazó txtből kiolvasnám az alhálózatokat és pingelném az alhálózatok első címét(később majd a többit is)
az echo szépen kiírja a két stringből összerakott ip címet, de a ping -c 1 nem eszi meg :(.
Segítségeteket kérném, mert ne mértem mi a baja.

A fő cél az lenne hogy az alhálózatokból kiszedjem azokat az ipcímeket, amelyek figyelnek a 80 porton, ezek 99%-ban nyomtatók és összeszedjem a számláló állásukat.

[megoldva] sshfs mv: jogosultsági probléma

Mi lehet a gond, ami miatt a művelet nem engedélyezett? sshfs-sel van felcsatolva a /tmp/4.
A távoli gépen az uid-m ugyanaz, mint a helyi gépemen. Mindkét gép Ubuntu linuxot futtat.

szz@gepem:/tmp/4/wrk$ mv torolj111 ezkellene
mv: ”torolj111”-t nem lehet ide áthelyezni: ”ezkellene”: A művelet nem engedélyezett
szz@gepem:/tmp/4/wrk$ ls -l torolj111 ezkellene
-rw-r--r-- 1 szz 1008 672498 2012-07-06 09:51 ezkellene
-rw-r--r-- 1 szz 1008 469173 2012-07-06 09:52 torolj111

szz@gepem:/tmp/4/wrk$ ls -ld .
drwxr-xr-x 1 szz 1008 4096 2012-07-06 09:52 .

Megoldás: sshfs -o workaround=rename ...

bash regexp file vegzodesre.

Biztos volt mar tema, de most futottam bele es kernek tanacsokat :)
Konkretan, az /etc/postfix/db osszes NEM .db vegzodesu filera szeretnem a psotmap parancsot lefuttatni. (gondot nem okoz, ha az osszes fileon fut, csak most mar hajt a kivancsisag)

Szoal, ami mukodik: (most csak ls)
ls *[^.db]
Vmiert (nem jottem ra, miert ) a
ls *[^.db]$ viszont nem...pedig ez elvileg a sor veget nezne.
Nagyobb gond, hogy a karakterek elofordulasat nezi, szoval a fentinel latszik a "dbfile" (hiszen nincs a vegen *), de nem latszik a "filebd" , hiszen a fenti regexpben csak az van megadva, hoyg barmi az elejen, utana "d" vagy "b" vagy ".", felteve, hogy jol ertem es a "bd" tartalmazza a "d" es "b" karaktereket.

szoval hogyan lehetne altalanossagban, hoyg bizonyos vegzodest szurjek (ne csak a karakterek, hanem a sorrendjuk is szamit?)

régi időpontok törlése txt fájlból

Adott egy unix időket tartalmazó txt fájl. Ebben oszlopszerűen sorakoznak az időpontok.

Valahogy így:
1341148920
1341220000
1342856333
1341318300
1341220020
1341266213
1341275897

Azt szeretném elérni hogy a már elmúlt időpontok törlődjenek. A többi maradjon meg. Az sem biztos hogy az időpontok sorrendben vannak!

Jelenleg az aktuális időhöz legközelebbi még el nem múlt időpontot így találom meg.

secs=$(sort -n ${date_file} | awk -v _now=$(date +%s) ' $1 >= _now {print $1}' | head -1)

Bár most jut eszembe az is elég lehet ha a fájl nem tartalmaz semmilyen időt mely a kritériumnak megfelelne, akkor törlődjön az egész tartalom.
De kérdés hogy ez az idő mikor jön el? Mert addig meg csak nő az állomány.

[megoldva] Perl subroutine and return

Sziasztok!

Ebben a scriptben van több hiba is (szerintem), nálam nem igazán akar működni. Ebből a scriptből használnám a switch-es menüválasztó részt egy másik scripthez, de nem működik.

Nálam így néz ki:
Pastebin

Amikor a menüben választok, csak a menüt kapom kapom vissza... :S

Esetleg ha valaki segítene, megköszönném. :)

Szerk: Odáig eljutottam, hogy választásnál mindig a második beírásnál veszi észre, hogy választottam, az elsőnél nem.

Megoldás:
Erre a hibaüzenetre: Can't call method "prepare" on an undefined value at

sub connect() {
return $connect;
}
sub select() {
my $connect = &connect();
$connect->prepare($myquery);
...
...
}

[megoldva] tee a stdoutra

#!/bin/sh
...
echo $a"/"$b | bc -l

Szeretném magát az $a, $b-t is látni, nemcsak a végeredményt. Van valami olyan megoldás, amivel (a kiírás ismétlése nélkül) meg tudom jeleníteni a bc-nek átadandó karakterláncot? Valami "tee"-szerűség közbeiktatásra gondoltam, de az épp, hogy fájlba irányít.