Hirdetés

2024. április 24., szerda

Gyorskeresés

Hozzászólások

(#751) Mahesa válasza Muton (#750) üzenetére


Mahesa
tag

ha csak egész számokat kell ellenőrizni, akkor egy ilyen teszt jó lehet:

[ $1 -eq $1 ] 2> /dev/null

(#752) lapa válasza doc (#749) üzenetére


lapa
veterán

sürgősnek nem sürgős egyátalán, csak én elég kevés vagyok ehhez, nem nagyon tudok konkrétat kérdezni.

(#753) Muton válasza Mahesa (#751) üzenetére


Muton
addikt

Köszönöm!

Muton#2316 - $z@r a drop >_<

(#754) ollie válasza lapa (#748) üzenetére


ollie
MODERÁTOR

Én a vbscriptet ajánlom, mert XP-től kezdve telepítened sem kell semmit hozzá, csak beírod parancssorba a script fájl nevét, és lefut.

***

(#755) doc válasza ollie (#754) üzenetére


doc
nagyúr

nagy minusz a vb scriptre, gyulolom...
raadasul ugye nagyon durvan platformfuggo (eleve csak windows, raadasul a microsoft agybaszasai miatt egyes vindoz-verziok kozott sem kompatibilis)

(#756) ollie válasza doc (#755) üzenetére


ollie
MODERÁTOR

Egy ilyen alapfeladatra teljesen jó, minden windows-on ugyanúgy fog futni. Az egy dolog, hogy te gyűlölöd, de még mindig a Windows a legelterjedtebb oprendszer, és ezért ajánlottam.

***

(#757) Mahesa válasza lapa (#747) üzenetére


Mahesa
tag

Elég sok adatról van szó, ráadásul sorok beszúrása csak új fájl létrehozásával lehetséges. És amíg egy feldolgozás folyamatban van, gondolom változhat az eredeti fájl tartalma is. Nem tudom, hogy a végső formátumot milyen program dolgozná fel illetve az adatokat mennyi ideig kellene tárolni. De első ránézésre lehet, hogy inkább adatbázisba pakolnám az értékeket aztán onnan csinálnék lekérdezéseket és a kimenetet meg aztán könnyedén lehetne formázni.

(#758) doc válasza ollie (#756) üzenetére


doc
nagyúr

nem azert utalom, mert fuj microsoft meg fuj windows, hanem mert irtozatosakat szoptam vele, millioszor elofordult hogy a talalt megoldas nem mukoott, mert kiderult hogy 'ja igen, ez windows 2000-nel meg megvolt, aztan senki nem tudja miert, de a ms kivette, az xp-ben mar nem mukodik' :W

raadasul erre a feladatra semmi nem indokolja a vbs-t, szovegfeldolgozasra perl, esetleg awk kell :)

gyorsan osszedobtam egy ronda, de mukodo megoldast perlben az 1. problemara:

my ($MAX, $last, $lastline, @prevs) = (4, -1,"");
foreach (<>)
{
my $nr = (split(" ",$_))[2];
print substr($lastline,0,20).($last+1).substr($prevs[$last+1],21) if (!($nr == 0 && $last == $MAX) && ($nr != ($last+1)) && (defined $prevs[$last+1]));
$prevs[$last = $nr] = $lastline = $_;
print;
}

a hasznalata siman ennyi:

perl scriptedneve.pl < adatok.txt

ha uj file-ba akarod iranyitani, akkor:

perl scriptedneve.pl < adatok.txt > javitott.txt

[ Szerkesztve ]

(#759) doc válasza doc (#758) üzenetére


doc
nagyúr

meg akkor mar legyen teljes, a masodik feladatot megoldo script:

my $line = "";
foreach (<>)
{
my @val = split;
if ($val[2] == 0)
{
print "$line\n" if ($line ne "");
$line = substr($_,0,20).$val[-1];
}
elsif ($line ne "")
{
$line .= " $val[-1]";
}
}
print "$line\n";

hasznalata ertelemszeruen perl scriptedneve.pl <javitott.txt

vagy ha egyben akarod a kettot hasznalni:

perl lapa1.pl <data.txt | perl lapa2.pl

sot, ha POSIX-kompatibilis oprendszert hasznalsz (gyakorlatilag a windowson kivul barmi), akkor a script elejere biggyesztve a #!/usr/bin/perl -w sort es futtathato attributumot allitva, ennyi:

lapa1.pl < data.txt | lapa2.pl

(#760) lapa válasza doc (#759) üzenetére


lapa
veterán

huh, hát nagyon köszi. nemsoká belemélyedek.

erre a windows dologra ránéztem, de nincs a repóban:

root@inox:/home/lapa# apt-get install windows
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package windows
root@inox:/home/lapa#

ettől függetlenül vbs-ben megoldottam volna, ezekkel a junixos regulárokkal meg awk-kal nem vagyunk még összemelegedve. pedig a honlap asp-jét is migrálnom kéne már php-ba, ha jól értettem az nagyon hasonló a perlhez, pár idegesítő kivétellel.

ja, régen csináltam logon szkriptet vbs-ben, emlékszem én is valami kompatibilitási gondokra. asszem még olyan is volt, hogy xp-n futott, de 2003-on nem. na azon belilult nekem is a fejem, hiszen szegről-végről ugyanaz.

az inputot le tudom állítani, nem téma. azaz az eredeti fájl nem válozik feldolgozás közben. emiatt nem varázsolnék adatbázissal, de lehet, hogy idővel célszerűbb lenne.

igazából nógatom a digitemp fejlesztőjét (a forrás a digitemp kimenete), hogy csináljon olyan log formátumot, amit a gnuplot egyből szeret. ez szerintem elég generikus igény, tekintve, hogy "a" hőmérő meg "a" grafikon appokról van szó. szóval remélem megcsinálja idővel.

mint írtam mindjárt nekifutok és beszámolok az eredményekről.

[ Szerkesztve ]

(#761) lapa válasza doc (#758) üzenetére


lapa
veterán

az lehetséges, hogy az első megoldás a hiányzó 0-kat nem egészíti ki, csak az 1, 2, 3, 4-et? csak valami 80 sor plusz lett az eredetihez képest, pedig párezer 0-s hiányzik.

mire megnyitom és ellenőrzöm tételesen openoffice-ban a nap lemegy...

sajnos nem igazán értem mit csinál a szkripted. ami nem baj, csak nem tudom megnézni a választ a fenti kérdésre.

[ Szerkesztve ]

(#762) lapa válasza lapa (#761) üzenetére


lapa
veterán

ehh, ezt megoldottam.

az utolsó kérésem az lenne, hogy az első scriptnek 5-ször kéne lefutnia. ez abból adódik, hogy néha nem csak 1 sor hiányzik.

nem izgat, hogy ötször tovább tart, de nekem hirtelen nem sikerült megfelelően for-next-et csinálni rá.

köszi és előre is.

[ Szerkesztve ]

(#763) doc válasza lapa (#762) üzenetére


doc
nagyúr

hopp, most latom csak hogy irtal :)
biztos hogy otszor kene lefutnia, nem potolja ki akkor is ha egynel tobb sor hianyzik?

(#764) lapa válasza doc (#763) üzenetére


lapa
veterán

nem úgy tűnik.

(#765) lapa válasza lapa (#764) üzenetére


lapa
veterán

no, hát úgy néz ki készen vagyok. meg ezzel a feladattal is. ilyen szép hőmérős bigyókat csináltak a scriptek nekem. még 10 mp-enkénti fogyasztásmérésem is lett így (fekete vonal), zsír.

fél nap
két nap
pár hét
összes

mégegyszer nagyon köszönök minden segítséget.

ja, ezt az ismétlősdit elég parasztosan oldottam meg, átpipeoltam ötször ugyanazon a scripten. lefut így is 20 mp alatt, nem téma.

[ Szerkesztve ]

(#766) lapa


lapa
veterán

üdv. kb a következőt szeretném:

[ programkimenet | grep szöveg = <legalább egy sor> ] && echo blabla | mail -s "subject" email@host.tld

nem tudom hogyan számoltassak sort (szöveg előfordulást) vele, illetve hogy ilyen egysoros if-et bele lehet-e rakni crontabba. elképzelhetőnek tartom, hogy zárójel is kell a "then"-t befoglalni. jól gondolom?

köszi a segítséget.

(#767) Mahesa válasza lapa (#766) üzenetére


Mahesa
tag

Használd a wc-t a -l kapcsolóval, az a visszaadott sorokat megszámolja:
[ `programkimenet | grep szöveg | wc -l` -gt 0 ]

Szerintem használhatod crontabban is, a sor végéig nézi az utolsó mezőben a parancsot és akár több parancsot is meg lehet adni pontosvesszővel elválasztva.

[ Szerkesztve ]

(#768) lapa válasza Mahesa (#767) üzenetére


lapa
veterán

köszönöm, ez jó lett. fejleszteném viszont egy kicsit. ez az eredeti:

[ `chkrootkit | grep infected | wc -l` -gt 0 ] && chkrootkit | mail -s "chkrootkit INFECTED" email@cim.hu

ez mint látható elég bénácska, mert ha a chkrootkit talált valami gonoszságot, akkor újra lefuttatja, csak hogy az emailbe rakjuk.

szóval szeretném a chkrootkit kimenetét elrakni egy változóba, hogy a feltétel teljesülésekor újra használhassam.

[ Szerkesztve ]

(#769) bambano válasza lapa (#768) üzenetére


bambano
titán
LOGOUT blog

mktemp-pel csinálhatsz egy fájlt, abba belerakod a chkrootkit kimenetét és utána abból lehet dolgozni.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#770) bpmcwap


bpmcwap
senior tag

Üdv,
lenne egy láma kérdésem...
Adott mappában rákeresek a legfrissebb fájlra($LATESTIMG) majd feltöltöm ftp-n; milyen paranccsal tudnám átírni a fájl nevét hogy a feltöltött fájl neve mondjuk mindig kep.jpg legyen és mindig írja felül az előzőleg feltöltött fájlt????
Segítségtekét előre is köszönöm!

meglévő script:

LATESTIMG=`cd $SOURCEDIR && ls -t1 $f | head -n1`
echo "Latest Image In This Folder: $LATESTIMG"

FILE="$LATESTIMG"

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put $FILE
quit
END_SCRIPT
exit 0

Túrista vagyok

(#771) vorik


vorik
tag

Üdv kedves Guruk!

Volna egy buta kérdésem: hogy tudok olyan VBS (vagy bármilyen) scriptet kreálni, ami W7 alatt automatikusan kikapcsolja a UAC-t minden egyes login után?

Odáig eljutottam sendkeys módszerrel, hogy kinyitja a a UAC ablakot, de nem akarja beírni a felhasználónevet/jelszót.

Céges gépem van, és hiába kapcsolom ki, minden újra bejelentkezéskor visszaállítja a UAC-t a legmagasabb szintre.

Van local és domain admin jogom is.

Üdv és köszi :R

recreational nuclear physicist

(#772) bambano válasza vorik (#771) üzenetére


bambano
titán
LOGOUT blog

lehet, hogy windowsos szaktopicban hamarabb kapsz tanácsot, ide a nagy linux topicból jöttünk:)

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#773) vorik válasza bambano (#772) üzenetére


vorik
tag

Ezt nem tudtam, nincs kiírva sehova :U

:R

recreational nuclear physicist

(#774) bambano válasza vorik (#773) üzenetére


bambano
titán
LOGOUT blog

első hozzászólás megvolt?:)

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#775) vorik válasza bambano (#774) üzenetére


vorik
tag

A topic címe elég beszédes volt, de akkor húzok innen... :U

recreational nuclear physicist

(#776) rt06


rt06
veterán

hogyan tudok egy binaris file-hoz hozzafuzni egy null byte-ot?

amit probaltam, az az alabbi:
echo "\0" >> file
viszont ezzel ket problemam is van
egyreszt hozzafuzte a file vegehez a \0 string-et (egy backslash es egy 0 karakter), valamint emoge tett meg egy sortorest is (\n), igy 1 byte helyett harommal novelte meg a file meretet, mely 3 kozul egyik sem az, amire nekem szuksegem lett volna

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#777) Jester01 válasza rt06 (#776) üzenetére


Jester01
veterán

echo -ne '\0' >> file

Jester

(#778) rt06 válasza Jester01 (#777) üzenetére


rt06
veterán

Hi!

kosznom a valaszt
idokozben mar megoldottam maskent, de sajnos nem segitett a dolog

Udv: VladimirR

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#779) Iginotus


Iginotus
őstag

Sziasztok, van egy szövegfájlom, abban szeretném azt megcsinálni, hogy soronként haladva átformázzam. (A TAB nincs igy kiirva benne, csak hogy tudjuk hogy ott van elválasztó karakter.)

"Wietmarschen"TAB"Lotte"
"Bissendorf"TAB"Gohfeld (Übergang A 30/B 61)"

És ezt kéne kapjam:

Wietmarschen,Lotte, , , , ,
Bissendorf,Gohfeld# (Uebergang A 30/B 61), , , , ,

Tehát a feladat, " jelek eltávolítása, TAB helyére vessző, Ü betűből Ue-t az ä betűből ae-t az első space elé egy #-et és a végére , , , , , (vessző space vessző space... :)
Valami awk-t emlegettek itt de ahhoz nem nagyon értek. Ha valakinek lenne ráérős ideje és megcsinálná nekem akkor hálás lennék.
Elég lenne egy parancssoros valami is ami beolvassa a txt-t megformázza és kiírja egy másikba.
Köszi.
(Milkacsoki sörfizetség? :) )

[ Szerkesztve ]

Plug and Pray... :)

(#780) Jester01 válasza Iginotus (#779) üzenetére


Jester01
veterán

#! /bin/bash

function do_field
{
tmp=${1//\"/}
tmp=${tmp//Ü/Ue}
tmp=${tmp//ä/ae}
tmp=${tmp/ /# }
echo $tmp
}

IFS=$'\t'
while read a b
do
a=$(do_field "$a")
b=$(do_field "$b")
echo "$a,$b, , , , ,"
done

MOD: ez egy "szűrő" vagyis standard inputról olvas, outputra ír. Tehát valahogy imígyen kell használni:

./script.sh <in.txt
Wietmarschen,Lotte, , , , ,
Bissendorf,Gohfeld# (Uebergang A 30/B 61), , , , ,

[ Szerkesztve ]

Jester

(#781) Iginotus válasza Jester01 (#780) üzenetére


Iginotus
őstag

Köszönöm szépen.
Tudtam használni, azt csinálja amit kell:
így indítom el is készíti.
./script.sh <in.txt >out.txt
de ha olyanban tudnánk még finomítani, hogy

(átírtam így,)
tmp=${1//\"/}
tmp=${tmp//Ü/Ue}
tmp=${tmp//ü/ue}
tmp=${tmp//ä/ae}
tmp=${tmp//Ä/Ae}
tmp=${tmp/ /# }
echo $tmp

de sajnos nem tesz különbséget kicsi és nagybetű között, bele lehetne ezt is még tenni? (nem mindig a szó elején van a ü meg ä :)

Sör vagy milka? :)

Plug and Pray... :)

(#782) Iginotus


Iginotus
őstag

set completion-ignore-case on

Válaszolok magamnak nagyon köszi :)

Plug and Pray... :)

(#783) llaszlo


llaszlo
veterán

Üdv.
Ennek a kimenete az aktuális időjárás
curl --silent "http://xml.weather.yahoo.com/forecastrss?p=HUXX0008&u=c" | grep -E '(Current Conditions:|[A-Z]<BR)' | sed -e 's/Current Conditions://' -e 's/<data=>//' -e 's/<br \/>//' -e 's/<b>//' -e 's/<\/b>//' -e 's/<BR \/>//' -e 's/<description>//' -e 's/<\/description>//' -e 's/, [0-9]* [A-Z]//' | tail -n1

Pl: Fair, Partly cloudy stb.

A lényeg, hogy ezt a szót szeretném egy változóba írni és utána majd azt vizsgálni.
Mintha pl ezt csinálnám:
most="Fair"

(#784) bambano válasza llaszlo (#783) üzenetére


bambano
titán
LOGOUT blog

most=$(katyvasz)

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#785) dabadab válasza bambano (#784) üzenetére


dabadab
titán

illetve (mivel a példa szerint többszavas is lehet az eredmény):
most="$(katyvasz)"

DRM is theft

(#786) llaszlo válasza dabadab (#785) üzenetére


llaszlo
veterán

Kösz, most már jó én csak simán idézőjelbe tettem.

(#787) bambano válasza dabadab (#785) üzenetére


bambano
titán
LOGOUT blog

nem látom a különbséget.
$ most=$(echo partly cloudy)
$ echo "---$most----"
---partly cloudy----

vagy

$ most="$(echo partly cloudy)"
$ echo "---$most----"
---partly cloudy----

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#788) dabadab válasza bambano (#787) üzenetére


dabadab
titán

Hm, tényleg, a dollárzárójel egyben tartja a kifejezést.

[ Szerkesztve ]

DRM is theft

(#789) llaszlo


llaszlo
veterán

if-nél hogyan kell kettős feltételt megadni?

pl
let ido="$(date +%H)"
if test [[ "$ido" -ge "6" && "$ido" -le "20" ]] szerkesztve: (talán így jó?)
then
cp icon_n.png /tmp/icon.png
else
cp icon.png /tmp/icon.png
fi

[ Szerkesztve ]

(#790) llaszlo válasza llaszlo (#789) üzenetére


llaszlo
veterán

mégsem működik. :(

[ Szerkesztve ]

(#791) bambano válasza llaszlo (#789) üzenetére


bambano
titán
LOGOUT blog

csak csúnya megoldást tudok:
filename=icon.png

[ $ido -ge 6 ] && [ $ido -le 21 ] && filename=icon_n.png

ki kellene próbálni, hogy nem csinál-e subshellt az utolsó értékadásnak...

másrészt meg ezt is kipróbálhatod:
if [ $ido -ge 6 ] && [ $ido -le 20 ] ; then

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#792) Jester01 válasza llaszlo (#789) üzenetére


Jester01
veterán

Mert nem kell bele a test. Ja és a számokat sem kell idézőjelbe tenni, bár az nem befolyásolja a működést.

if [[ "$ido" -ge 6 && "$ido" -le 20 ]]
then
cp icon_n.png /tmp/icon.png
else
cp icon.png /tmp/icon.png
fi

Jester

(#793) llaszlo


llaszlo
veterán

Nah, már én is kipróbáltam mindent. Közben rájöttem, hogy nem ÉS hanem VAGY kell. Működik.
kösz

if [ $ido -le 6 ] || [ $ido -ge 20 ]
then
...

(#794) Jester01 válasza llaszlo (#793) üzenetére


Jester01
veterán

Ez pedig imígyen néz ki szebben:
if [ $ido -le 6 -o $ido -ge 20 ]

Jester

(#795) bambano


bambano
titán
LOGOUT blog

Ha van egy scriptetek, aminek a hónap utolsó napján kell lefutnia, azt hogy csináljátok meg szépen?

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#796) dabadab válasza bambano (#795) üzenetére


dabadab
titán

Ugy, hogy inkabb megis elsejen futtatnam :P

Egyebkent meg szerintem kozvetlenul sehogy sem lehet maganak a cronnak elmagyarazni, hogy az utolso napot szeretned, ezert kenytelen vagy trukkozni:
0 0 28-31 * * [ "$(/bin/date +%d -d tomorrow)" = "01" ] && /your/script.sh
(as seen on Google :) )

DRM is theft

(#797) bambano válasza dabadab (#796) üzenetére


bambano
titán
LOGOUT blog

ha jól tudom, nálatok folyik könyvelés, úgyhogy az ilyen elsején futtatnám szöveg elég érdekesen hangzik a te szádból :)

de ez a date-s ötlet jó, nekem nem ez jutott eszembe:) én eddig azt ellenőriztem, hogy a holnapi nap ugyanabban a hónapban van-e, mint a mai, de a te ötleted egy date-tel rövidebb.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#798) llaszlo


llaszlo
veterán

Ez a script eddig kiírta az aktuális TV műsort és a típusát.

#!/bin/sh
URL="http://tv.animare.hu/rssfeed.aspx?tartalom=aktualistvmusor&tvcsatorna=1"
feed=`curl "$URL" 2>/dev/null|sed -e 's/^.*<item>.*<title>\(.*\)<\/title>.*<\/item>.*$/\1/'`
megj=`curl "$URL" 2>/dev/null|sed -e 's/^.*<item>.*<description>\(.*\)<\/description>.*<\/item>.*$/\1/'`
echo " " $feed
echo " " $megj

Ebből pl:
$ curl "http://tv.animare.hu/rssfeed.aspx?tartalom=aktualistvmusor&tvcsatorna=1"

<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>m1 aktuális műsora</title><link>http://tv.animare.hu/default.aspx?channel=1</link><description>Animare TV újság (http://tv.animare.hu/) m1 aktuális TV műsorának RSS formátumban történő közlése.</description><language>hu-HU</language><ttl>15</ttl><lastBuildDate>Sat, 24 Sep 2011 22:59:40 GMT</lastBuildDate><item><title>23:20 Montalbano felügyelő: A kőkutya rejtélye</title><description>(Olasz bűnügyi tévéfilm) </description><link>http://tv.animare.hu/tvmusor.aspx?id=b966307e914c0c488296672df231f77848</link><pubDate>Sat, 24 Sep 2011 21:20:00 GMT</pubDate></item></channel></rss>

Ezt:
23:20 Montalbano felügyelő: A kőkutya rejtélye
(Olasz bűnügyi tévéfilm)

Ez működött is amíg úgy nem döntöttem, hogy felteszem az előző rendszert (Snow Leopard). Most a sed 100%-ra pörgeti a procit és nem működik.
Más scriptekben működik a sed ott nincs vele gond csak a TV műsornál. Megnéztem két linuxal azzal is rendesen működik. Így most fogalmam sincs, hogy mi lehet a gond.
Nem én írtam, mert még csak most tanulgatom úgy, hogy fogalmam sincs, hogy mi a hiba.

Máshogy ki lehet még íratni azt a két adatot?

(#799) Jester01 válasza llaszlo (#798) üzenetére


Jester01
veterán

#! /bin/bash

URL="http://tv.animare.hu/rssfeed.aspx?tartalom=aktualistvmusor&tvcsatorna=1"
data=$(curl "$URL" 2>/dev/null)
title=${data##*<title>}
echo ${title%%</title>*}
desc=${data##*<description>}
echo ${desc%%</description>*}

Jester

(#800) llaszlo válasza Jester01 (#799) üzenetére


llaszlo
veterán

Nagyon szuper köszönöm.
Mennyivel egyszerűbb és emlékeim szerint gyorsabban is működik. :)

Copyright © 2000-2024 PROHARDVER Informatikai Kft.