Új hozzászólás Aktív témák
-
doc
nagyúr
jónak tűnik
ami nem kell, az a *.* helyette használj simán *-ot, mert így csak azokat a file-okat találja meg aminek a nevében van pont
vagy ha a ponttal kezdődőek is kellenek, akkorfor i i n * .*
MOD: hopp most látom a zárójelet, helyette a ` jelet használd (altgr+7)
tehát így:for i in *
do
mv $i ` echo$i | sed 's/ /_/g' `
done[ Szerkesztve ]
-
doc
nagyúr
nem kellett volna berakni a for-ba, a find végiggyalogol a könyvtárszerkezeten
de valamiert tenyleg nem jo
akkor csinald kicsit "parasztabb" modszerrel
csinalsz egy futtathato file-t, mondjuk rendez.sh neven a kovetkezo tartalommal:#!/bin/sh
mv "$1" `echo $1 | sed 's/ /_/g'`ez ugye annyit csinál, hogy a paraméterben adott file-t átnevezi szóköz nélkülire
aztán ezt kell meghívni minden file-ra:
find -exec ./rendez.sh {} \;
ugyan nem atnevezessel, hanem sima echo-val, de nekem mukodik
Ui: vajon miert nem tudja vegrehajtani a find a shell fuggvenyeket? sokkal szebb lenne...
-
doc
nagyúr
válasz Eszeveszett #381 üzenetére
gondolom a vizsganak mar vege
egy lehetseges megoldas:#!/bin/sh
if [ $# -ne 1 ]; then
echo hasznalat: x.sh PID
else
PID=$1
while true; do
if [ `ps ax | cut -f 1 -d ' '| grep $PID` ]; then
echo fut
else
echo nem fut
fi
sleep 2
done
fi -
doc
nagyúr
viszont pont azert szokas /bin/sh-t hasznalni, mert az az 'sh-szintig' kompatibilis, tehat ha a script sima sh-val fut, akkor futnia kell azzal is, amire a /bin/sh mutat, barmi is legyen az
mondju a debiannak rogeszmeje mindig mindent mashogy csinalni mint mindenki mas :-/az egymasba agyazas valoban nehezkes backtick-kel, de az mar eleve csunya (marmint nem a backtick, az jooo )
-
doc
nagyúr
egyelőre a debian az a linux, amiből legtöbbet lehet profitálni, ha át kell ülni nagyobb gépre.
mire gondolsz? en pont azt latom benne, hogy mindenre van sajat, debian-only megoldasa, vagyis az "ismerem a linuxot" es az "ismerem a debiant" kozel sem ugyanaz, a kereskedelmi unixoktol meg meg messzebb all[ Szerkesztve ]
-
doc
nagyúr
ja ertem
hat most csinaltam gyorsan egy nagyon randa de legalabb mukodo megoldast ping-gel:ping www.index.hu -c 1 | head -n 1 | cut -d ' ' -f 3 | tr -d '(' | tr -d ')'
vagy nslookuppal normalisabb:
nslookup www.index.hu | grep Address | tail -n 1 | cut -d ' ' -f 2
[ Szerkesztve ]
-
doc
nagyúr
válasz bozsikjanos #609 üzenetére
akkor meg mar:
echo $((4+5+7+3-2))
-
doc
nagyúr
csak most kapcsolodtam be a szalba, az elozmenyekbe csak gyorsan beleneztem, de ha azt a fo feladat, hogy terminalablakot feldobva tortenjen valami, akkor megcsinalhatod pl igy:
xterm -e 'wget http://prohardver.hu/index.html'
letolti az oldalt, kozben latod a progressbart, majd miutan vegzett, becsukodik
-
doc
nagyúr
xterm -e 'wget http://prohardver.hu/index.html && watch df -h'
nekem Ubuntu 10.4 alatt teljesen jol mukodik
ha valami olyan specialis parancsot/parameterezest hasznalsz hogy nem megy, akkor esetleg a ; (pontosvesszo) karakterekkel illetve zarojelezessel lehet probalkozni
MOD: ha nem megy, akkor masold ide a konkret parancssort, aztan megnezzuk
[ Szerkesztve ]
-
doc
nagyúr
akkor egy ilyesmi esetleg:
xterm -e 'ssh root@192.168.1.151 & ( sleep 15 ; watch df -h)'
igy a masodik (zarojeles) blokk az elsovel parhuzamosan fut. vagyis az ssh bekeri a jelszot, kozben megy a 15 masodperces timer, es ha lejar, elindul a watch
igy nem kell a -f, viszont nem is megy backgroundba az ssh, vagyis ottmarad az ablak (bar az a vnc miatt gondolom amugy is maradna)
-
doc
nagyúr
es szerinted ha azt mondod a gepnek hogy 'log.txt' akkor az honnan fogja tudni, hogy te a gepeden levo 15 db log.txt kozul arra gondolsz, amelyik a ~/akarmi/logs/log.txt file?
a scriptedben meg ne az ls-t hasznald rekurziv bejarasra (ha igen, akkor meg kell irni a parsert ami megcsinalja), ott az altalam mar emlitett nagyon egyszeru find . -
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'
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 ]
-
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
-
doc
nagyúr
egy masik topicbol, hogy ne azt kelljen szenne offolni
Akkor próbálj két dolgot megcsinálni, csak kapásból. Mondtad az ls-t. Akkor írt egy scriptet, ami az ls(!) kimenete alapján csinál valamit (mindegy mint... akár csak írja ki) az összes felsorolt fájl nevével.
ehhez nem kell script, nagyon egyszeruen megoldhatok par karakterbol:
for i in `ls -1`; do echo $i ; done
Vagy, írj egy scriptet, ami csinál valamit (minegy mit), ha neki paraméterként átadott dev-ek bármelyikén 95% alá csökken az üres hely.
ez mar egy hajszallal erdekesebb feladat, mindjart megirom es hozom, csak elotte eszek valamit -
doc
nagyúr
nem tul elegans megoldas (nincs parameterellenorzes sem), de mukodik
1 #!/bin/sh
2
3 while true; do
4 for dev in $@ ; do
5 if [ `df $dev | grep -o '[0-9]\+%' | grep -o '[0-9]*'` -gt 5 ]; then
6 echo Low space on $dev
7 fi
8 done
9 sleep 1
10 doneMOD: ehh, nem gondoltam volna hogy megeloznek mondjuk talaltam jo otletet dabadab scriptjeben, amivel tenyleg szebb lesz (pl. tr -d %)
[ Szerkesztve ]
-
doc
nagyúr
válasz ddekany #1481 üzenetére
biztos en vagyok a hulye, de en nem szoktam space-t rakni a filenevbe (sem ekezetes karaktereket, sem hasonlo aljassagokat - szivtam ezzel eleget a windowsos rendszergazdasagom alatt...)
ha ez megis elofordult, akkor a problema valamivel bonyolultabb lesz, de kozel sem megoldhatatlana peldad meg santit, mert a df nyilvan alapvetoen arra van, hogy EN megnezzem mennyi a szabad hely
tehat ha jsonozni akarsz, akkor meg kell mondani neki hogy "fogalmazzon bonyolultan", majd meg kell keresnem hogy hogyan is hivja o a sajat kimeneteben a usage percentage-t. Mig most egyetlen ranezessel latszik, hogy eleg megkeresnem a "99%" format, addig a te megoldasodnal a json kimenetben turkalva kene megkeresnem a megfelelo nevet.szerintem a df --jsonoutput $dev | jget usagePercentage nem segit annyit a df $dev | grep -o '[0-9]\+%' | grep -o '[0-9]*' valtozathoz kepest, hogy az alapveto, brutalis munkat megkovetelo architekturalis valtozasokat indokolna (ranezek a df outputjara, majd egyedul a "grep" parancsot hasznalva mar kesz is a megoldas)
Alapvetoen nem rossz az otlet, hogy valamilyen szabvanyos feluleten kommunikaljanak egymassal a programok, de ezt rakenyszeriteni a felhasznaloi interakciora kitalalt programokra nagy butasag, es felesleges is (baromi sok pluszmelot igenyelne, es ha valaki eppen nem, vagy nem jol koveti az elvarast, akkor MINDEN borul)
Egyebkent nem talaltal ki semmi ujat, nezd meg pl. a DBUS-t - csak azt nem akarjak olyan helyeken is eroltetni, ahova nem valo.
Új hozzászólás Aktív témák
- Termékoldal buktatta le a Huawei Watch Fit 3-at
- Xbox Series X|S
- ThinkPad (NEM IdeaPad)
- Windows 11
- eMAG/edigital vélemények - tapasztalatok
- Netfone
- A legtöbb amerikai szerint a TikTok egy őket befolyásoló eszköz
- Suzuki topik
- Kormányok / autós szimulátorok topicja
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- Eredeti Windows, telepítéssel! Digital Doctor Számítógép Szerviz
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."