Új hozzászólás Aktív témák
-
bambano
titán
válasz Votyesz13 #500 üzenetére
sed 's/"$VALTOZO"/"$VALSEGED/' phone.txt
ha a sed programja aposztróffal kezdődik, akkor mindegy, hogy van-e belül idézőjel.
ha cseréltetni akarod, akkor idézőjelek közé tedd.
sed -e "s/$VALTOZO/$VALSEGED/" phone.txtés már csak azt intézd el, hogy egyikben se legyen / jel.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
FixY67
senior tag
válasz Votyesz13 #500 üzenetére
A while-nak több baja is van.
Nem kerek zárójelek kellenek, hanem egy test parancs:
while test "$a" != "$b" ; do echo a; echo b; echo c; doneIlletve a szokásos forma:
while [ "$a" != "$b" ]; do echo a; echo b; echo c; doneA másik, hogy az ilyen jellegű hasonlításoknál a változót nem árt idézőjelek (") közé tenni (hangsúlyozottan nem aposztróf (') !!! ), hogy ha üres a változód, akkor se legyen gond vele.
...
-
Votyesz13
tag
A whileal azt szeretném elérni hogy végtelen ciklusba addig olvassa be a név szám párokat amíg vagy a szám vagy a név egy üres sort nem kap.De akkor először be kell kérnem a páraokat a while előtt vagy majd csak a whileon belül és akkor utána adom meg a while feltételének?Mert nem akar folyamatosan bekérni adatot hanem csak egy nevet és számot kér be és leáll...:S
-
Stefa0009
csendes tag
Sziasztok!
Szeretnék írni egy linuxos shell szkriptet amely kiírja két dátum között eltelt
időt a felhasználó által választott mértékben. Az első paramétere egy kapcsoló
(‐ev, ‐honap, ‐nap, ( , p, p, ‐ora, ‐perc, ‐masodperc), második és harmadik paramétere (YYYY‐MM‐DD alakban) dátumok. Hibás dátum esetén hibát írjon ki. Tudna valaki ebben segíteni?
Előre is köszi -
bambano
titán
válasz Votyesz13 #504 üzenetére
de ha a ciklus feltételébe tartozó változók értéke nem változik a ciklusmagon belül, akkor ez tuttira végtelen ciklus lesz.
nem kell aggódni, a linux azt is végrehajtja 5 másodperc alattmegjegyzés: csak nekem evidens, hogyha nevet akarok tárolni egy változóban, akkor annak az lesz a neve, hogy nev, meg telefonszam?
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
miért van nekem olyan érzésem, hogy itten mostan iskolai házifeladatokat oldunk meg?
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
Votyesz13
tag
Nem név és szám lenne a neve hanem az a név pl(Kiss Pista) és a telefonszáma(0671281082) amit bekérek folyamatosan.És ezért kell bele a az if hogy vizsgálja meg hogy ha van már olyan nevű a txt-be amibe beleírunk folyamatosan akkor kérdezzen vissza hogy mi legyen azzal a név szám párossal.Felülírjuk vagy cseréljük arra ami már a txt-be van.Elvileg erről lenne szó Csak gyakorlatba nem akar működni
-
Votyesz13
tag
#! /bin/bash
kilep=0;
while([ $kilep -eq 0 ]);
do
echo -n "Kerem a nevet: "
read VAL1;
echo -n "Kerem a hozzatartozo telefonszamot: "
read VAL2;
if [ -z `echo $VAL1` ];
then kilep=1;
fi
if [ -z `echo $VAL2` ];
then kilep=1;
fi
if [ $kilep=0 ];
then
VALSEGED=`grep $VAL1 phone.txt`;
if [ -z `echo $VALSEGED` ];
then
echo "$VAL1:$VAL2" >> phone.txt;
elseecho "Csere(1) vagy nem csere(0)? ";
read VALASZ;
if [ $VALASZ -eq 1 ];
then
grep -v "$VAL1" phone.txt > phone2.txt;
cat phone2.txt > phone.txt
echo "$VAL1:$VAL2" >> phone.txt;
fi
fi
fi
done
rm phone2.txtexit 0;
Na ez egy verzió
hát az lenne a program dolga hogy folyamatosan bekéri a név telefonszám párosokat mintha egy telefonkönyv lenne.Beírja őket egy txt-be folyamatosan.Ha egyezést talál akkor megkérdezi hogy kicserélje-e őket vagy eldobja e az új sort.A program akkor áll le ha üres paramétert kap vagy a névnek vagy a telefonszámnak.Ennyi röviden -
8nemesis8
veterán
Sziasztok!
Hogyan tudnám megvalósítani, hogy a bejelentkezett felhasználók közül listázzam ki azokat akik a bejelentkezés óta eltelt idő 50%-ában idle állapotban vannak, százalék szerint csökkenő sorrendben!?
Úgy próbálkoztam, hogy a who parancsra adott válaszból awk printtel kiszedem az oszlopokat szétbontom kettőspontnál és így vissza tudok számolni másodperceket. Idle ugye lekérhető w vagy fingernél. Viszont szerintem finger használata hasznosabb lehet, ott nevekkel azonosítóval tudom a végén listázni esetleg.
Előre is köszi a segítséget. -
Stefa0009
csendes tag
Sziasztok!
Szeretnék írni egy linuxos shell szkriptet amely kiírja két dátum között eltelt
időt a felhasználó által választott mértékben. Az első paramétere egy kapcsoló
(‐ev, ‐honap, ‐nap, ( , p, p, ‐ora, ‐perc, ‐masodperc), második és harmadik paramétere (YYYY‐MM‐DD alakban) dátumok. Hibás dátum esetén hibát írjon ki. Szökőévek nem számítanak. Úgy gondoltam hogy az első paramétert valahogy így oldanám meg:
case $1 in
ev) ;;
honap) ;;
nap) ;;
ora) ;;
perc) ;;
masodperc) ;;
esac
Tudna valaki ebben segíteni?
Előre is köszi[ Szerkesztve ]
-
8nemesis8
veterán
Igen, ahhoz viszonyítva oldottam már meg nagyrészt. Már csak egy rendezést kell százalék alapján.
Van egy olyan fájlom, hogy idle_time login_time név
Ebből kellene egy százalékos érték alapján sorba rendeznem!
awkra gondoltam idle/login*100 és név hozzárendelve, azonban egy sorban ezt nem tudom megtenni. Hogyan lehetne? -
DonVinetoo
csendes tag
Sziasztok!
Kéne nekem egy kis segítség egy script megírásához aminek ezt kell csinálnia:
Jelenítse meg a LISTA‐ban felsorolt könyvtárakban a
legfeljebb IDO perce módosított állományok
módosítási idejét és a nevét.Köszi a segítséget!
-
FixY67
senior tag
válasz DonVinetoo #520 üzenetére
Milyen segítség kellene? Mert a kérdésed kb. arra utal, hogy írja meg valaki helyetted...
Ajánlom figyelmedbe pl. a 'for' parancsot, a "find" parancs -mtime, ill. -ctime (?) kapcsolójának tanulmányozását, valamint az 'ls' kapcsolóit.
...
-
DonVinetoo
csendes tag
-
Stefa0009
csendes tag
Sziasztok!
Szeretnék írni egy linuxos shell szkriptet amely kiírja két dátum között eltelt
időt a felhasználó által választott mértékben. Az első paramétere egy kapcsoló
(‐ev, ‐honap, ‐nap, ( , p, p, ‐ora, ‐perc, ‐masodperc), második és harmadik paramétere (YYYY‐MM‐DD alakban) dátumok. Hibás dátum esetén hibát írjon ki. Én erre jutottam:
#!/bin/bashdate2stamp () {
date --utc --date "$1" +%s
}dateDiff (){
case $1 in
-s) sec=1; shift;;
-m) sec=60; shift;;
-h) sec=3600; shift;;
-d) sec=86400; shift;;
*) sec=86400;;
esacdte1=$(date2stamp $1)
dte2=$(date2stamp $2)
diffSec=$((dte2-dte1))if ((diffSec < 0));
then abs=-1; else abs=1;
fi
echo $((diffSec/sec*abs))
}Valamiért nem akar működni. Valaki segítsen! Előre is köszi
-
8nemesis8
veterán
Windows alól írtam a shell scriptet puttyon keresztül belépve linux alá, hogyan tudom eltávolítani a rossz újsor kezdő karaktereket, sajnos a dos2unix parancs nem működik.
-
pilsner
aktív tag
Hello!
Tudna nekem segíteni valaki abban, hogyan tudom letárolni egy változóba az összes paramétert ("$*") mínusz az utolsó paramétert ("$#") ? Azaz hogyan távolítom el az előzőleg már letárolt utolsó paramétert az összes paraméterek listájából? Nagyon köszönöm!www.sakertour.com - The carpathian birdwatching and hide photography company
-
pilsner
aktív tag
végeredményében ugyanígy. egy ciklussal az $1től az $#-1-ig a paramétereket bele egy stringbe. ami megfeleltethető egy változónak is, és így a paraméterek sorszáma sem változik a shift hatására.
kár, hogy a script nem lett tökéletes, de nem ezen múltwww.sakertour.com - The carpathian birdwatching and hide photography company
-
7
addikt
Sziasztok!
Az utóbbi napokban estem át egy mailmigráláson, aminek során az eddigi masszívan gtalkra használt mailcímemet töröltem, de előtte lementettem HTML formátumba a beszélgetéseimet. Mivel ezt scripttel csináltam, ezért a filenevek nemigen értelmesek.
Amire szükségem lenne, az egy olyan script, amivel a html-ben található szöveg alapján átnevezhetném a beszélgetéseket.
Értsd: A HTML file-ok tartalmazzák a következő sort: "Chat with XY". Szeretném ezt az XY-t kiemelni és hozzácsapni a filenév elejéhez.
Tehát ha eddig az volt a file neve, hogy 1234_54321.html, akkor a script lefuttatása után legyen az, hogy XY_1234_54321.html.Kérdésem, hogy tudnátok-e segíteni legalább abban, hogy hogyan induljak el.
Például fogalmam sincs róla, hogy egyáltalán hogyan tudok tömeges átnevezést végrehajtani, valamint hogy tömeges átnevezésnél hogyan adhatok meg olyan változót, amivel kiegészíthetem a fileneveket. -
FixY67
senior tag
for i in '*filespec*'
do
partner=$(grep -m1 'Chat with' | sed -e '/^.*Chat with //' | cut -d ' ' -f 1)
mv "$i" "$partner_$i"
doneÍgy hajnalok hajnalán, próba nélkül leírva...
(és feltételezve, hogy a chat-ben résztvevők nickjei kizárólag olyan karaktereket tartalmaznak, amik elfogadhatóak egy file nevében és nincs bennük idézőjel)...
-
veterán
-
FixY67
senior tag
-
veterán
-
FixY67
senior tag
válasz Neil Watts #540 üzenetére
Mivel régebben bourne shellt, meg ksh-t kezdtem tanulni, majd picit belenéztem a C shellbe és megállapítottam, hogy ezzel jáccon akinek két anyja van, igencsak meglepődtem a bash-t látva.
Viszont kényelmes. Egy bizonyos szintig még szeretni is lehet. De ahhoz meg kellene ismerni alaposabban. Akkor meg már inkább az awk v. zűrösebb esetekben a perl......
-
veterán
-
7
addikt
Update: köszönöm a kiindulási alapot, megvagyok az átnevezgetéssel. Magamra specializált paraméterek vannak benne
#!/bin/bash
for i in *html
do
ident=$(ls "$i" | sed -r 's/_.*html//g')
date=$(cat "$i" | grep -E -m1 '(Mon|Tue|Wed|Thu|Fri|Sat|Sun), .* 20[01][567890] at .* (AM|PM)' | cut -d ' ' -f 2-4 | sed -r 's/,//g' | sed -r 's/(at)//g' | sed -r 's/:/./g' | sed -r 's/ /-/g' )
partner=$(cat "$i" | grep -m2 "<" | sed -r 's/.*dorp.*//g' | grep "$lt;.*>" | sed -r 's/<|>//g' | sed -r 's/[@|%]/_/' | sed -r 's/[@|%]/_/g' | sed -r 's/_msn.*//g')
#echo "$partner"_-_"$ident"_-_"$date"
mkdir "$partner"
mv "$i" "$partner"/"$partner"_-_"$ident"_-_"$date".html
done[ Szerkesztve ]
-
FixY67
senior tag
Új hozzászólás Aktív témák
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Vírusirtó, Antivirus VPN kulcsok
- World of Warcraft Shadowlands Collectors edition EU EN
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest