Hirdetés

2024. április 27., szombat

Gyorskeresés

Hozzászólások

(#1851) PistiSan válasza Jester01 (#1850) üzenetére


PistiSan
addikt

Azt a részét nem értettem, ezért nem használtam fel :)
Köszönöm szépen mindanyiótokban, most már minden úgy működik ahogy kell!
:R

(#1852) Tamy


Tamy
senior tag

Sziasztok!

Szeretnék beüzemelni egy Zentyal 4.0 szervert, virtuális környezetben összeraktam, a gépektet beléptettem a tartományba, de azt sehogy sem bírom elérni, hogy a felhasználóknak automatikusan felcsatolja a csoport megosztott könyvtárát is. Csináltam egy egyszerű login scriptet, amit betettem a Bejelentkezési parancsfájlhoz, viszont valahogy azt szeretném elérni, ha mindenkinek csak a saját csoportjához tartozó megosztás kerülne felcsatolásra. Azt látom, hogy feltöltéskor a scripthez lehet paramétert megadni, gondolom ide kéne beállítani a megfelelő csoportot, csak sajnos fogalmam sincs hogyan. Tudna valaki segíteni?

Egész életemben azon gondolkodtam, hogy kéne valamit dolgoznom. Ezért aztán a végén nem is maradt rá időm.

(#1853) Gyb001


Gyb001
senior tag

Sziasztok. Tudtok valami jó könyvet/oldalt ahol leírják hogyan tudok kapcsolókat létrehozni?
Konkrétan a feladatot már megcsináltam. Csak olyat szeretnék hogy ha kapcsoló nélkül hajtódik végre a fájl akkor legyen A eredmény kiírva ha -valami vel akkor legyen a B

A bus station is where a bus stops. A train station is where a train stops. On my desk, I have a work station

(#1854) Jester01 válasza Gyb001 (#1853) üzenetére


Jester01
veterán

man bash ;)

Esetedben a legegyszerűbb utat követve mindösszesen annyit kell megnézni, hogy if [ "$1" = "-valami" ]

[ Szerkesztve ]

Jester

(#1855) Gyb001 válasza Jester01 (#1854) üzenetére


Gyb001
senior tag

kösz :)
Én is így csináltam. Azt hittem van valami "speciális" csak erre használt megoldás.

A bus station is where a bus stops. A train station is where a train stops. On my desk, I have a work station

(#1856) Jester01 válasza Gyb001 (#1855) üzenetére


Jester01
veterán

Van getopts beépített parancs a bash-ban, de egyfelől az nem szabványos, másfelől csak egy karakteres opciókat kezel (és ráadásul jelen esetben ágyúval verébre).

Jester

(#1857) Tamy válasza Tamy (#1852) üzenetére


Tamy
senior tag

Megpróbálom máshogy leírni a problémámat, hátha könnyebben tudtok segíteni:

Iskolai környezetről lévén szó, minden osztály egy csoport. Legyen az egyik ilyen csoport a 4a, akinek a megosztott mappája szintén a 4a. A megosztással minden rendben, tallózva elérik, csak épp annyit szeretnék, ha ez automatikusan felcsatolódna bejelentkezéskor. Értelemszerűen mindenkinek csak a sajátja.

Csináltam egy batch fájlt az alábbi tartalommal:

net use a: \\server\4a

Ezt webes felületen fel tudom tölteni, illetve paraméterekkel ellátni. Ebből generál egy scriptet az alábbi tartalommal:

[Logon]
0CmdLine=4a.cmd
0Parameters=

Ilyen paraméterezett batch fájlból természetesen többet is fel lehet tölteni. Magyarul ha jól gondolom a paraméter értékkel el lehetne érni, hogy csak akkor futtassa az adott batch fájlt, ha a felhasználó a paramétereknél megadott csoportba tartozik. Csak azt nem tudom miként kellene paraméterezni.

Egész életemben azon gondolkodtam, hogy kéne valamit dolgoznom. Ezért aztán a végén nem is maradt rá időm.

(#1858) Gyb001


Gyb001
senior tag

Újabb segítséget szeretnék kérni valakitől
String kisbetűssé alakításával van egy kis gondom.

hogyha simán kiiratom a szöveget akkor át alakítja
valtozo="SZOVEG"
echo $valtozo|tr '[A-Z]' '[a-z]'

Viszont ha egy új változóba menteném el akkor nem fut le az átalakítás.

valtozo="SZOVEG"
ujvaltozo = $valtozo|tr '[A-Z]' '[a-z]'
echo "$ujvaltozo"

sor: 3: ujvaltozo: parancs nem található

A bus station is where a bus stops. A train station is where a train stops. On my desk, I have a work station

(#1859) doc válasza Gyb001 (#1858) üzenetére


doc
nagyúr

ujvaltozo =` echo $valtozo|tr '[A-Z]' '[a-z]'`
vagy
ujvaltozo =$( echo $valtozo|tr '[A-Z]' '[a-z]')

[ Szerkesztve ]

(#1860) lev258 válasza Gyb001 (#1858) üzenetére


lev258
veterán

ujvaltozo = echo $valtozo|tr '[A-Z]' '[a-z]'

Ubuntu MATE 20.04, hobbi cayenne termesztő

(#1861) Gyb001 válasza lev258 (#1860) üzenetére


Gyb001
senior tag

Köszönöm ismét :)

A bus station is where a bus stops. A train station is where a train stops. On my desk, I have a work station

(#1862) prucam


prucam
tag

Sziasztok,

most számokkal kapcsolatban kérném segítségetek. Egy *txt fileben vannak vegyesen számok s szöveg.

Vannak:
1, egész számok: 1-1000-ig
2, tizedesjegyű számok: pl.: 1,1827000 stb.

Hogyan lehetne kiszűrni, (pontos találatok kellenek):
1, az összes számot (egész, v. tizedes mind)
2, az egyjegyű-kétjegyű stb. számokat (egész számok)
3, v. csak azokat amelyek tizedesjegyűek (a tizedesjegyek száma nem számít [de később kellhet, ezért azt is szeretném tudni])

Előre is köszönöm a segítséget!

üdv

(#1863) bambano válasza prucam (#1862) üzenetére


bambano
titán
LOGOUT blog

házifeladat lébecolás szagot érzek...

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

(#1864) prucam válasza bambano (#1863) üzenetére


prucam
tag

Negyven évesen már nem kell leckét csinálnom, de a segítség néha jól jön.

:R

[ Szerkesztve ]

(#1865) Jester01 válasza prucam (#1862) üzenetére


Jester01
veterán

Egyszerű regex szűrés, számjegyekre és vesszőkre. Hol akadtál el?

Jester

(#1866) bambano válasza prucam (#1864) üzenetére


bambano
titán
LOGOUT blog

ok :)
szerintem tördeld fel a txt-t szavakra, majd grep-pel szedd ki belőle azokat a stringeket, amik számot mutatnak.

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

(#1867) prucam válasza Jester01 (#1865) üzenetére


prucam
tag

Még az elején elakadtam.

grep "[0-9]" abc
- ez részben már jó, mert azokat a sorokat mutatja amikben vannak számok

grep -o "[0-9]" abc

1
6
8
4
2
7
0

- a soronkénti találatokat kellene csak a számokra szűkíteni. De hogyan?

(#1868) dabadab válasza prucam (#1867) üzenetére


dabadab
titán

Van a regexpben olyan, hogy sor eleje (^) meg sor vege ($), illetve olyan, hogy "az elozo karakterbol akarmennyi" (*)

Szoval ha jol ertem, neked ez kell:

grep "^[0-9]*$" abc

DRM is theft

(#1869) bambano válasza prucam (#1867) üzenetére


bambano
titán
LOGOUT blog

szerintem még mindig az a legegyszerűbb, hogy szavanként külön sorba tördeled a fájlt, és ezután grepelsz

pl. cat file | tr ' ' '\n' | grep

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

(#1870) prucam


prucam
tag

Sziasztok,

szótördeléses megoldás lett a nyerő! Köszönöm bambano! Onnan meg már egyszerűbb, mert csak a számokkal kezdödő sorokkal viszgáljuk. Az ötletért köszönet dabadab-nak!

Utána grep-el megcsináltam a "leckét":

Hogyan lehetne kiszűrni, (pontos találatok kellenek):
1, az összes számot (egész, v. tizedes mind)
megoldás: cat abc | tr ' ' '\n' | grep "^[0-9]"
2, az egyjegyű-kétjegyű stb. számokat (egész számok)
megoldás kétjegyű: grep "^[0-9][0-9]" stb.
3, v. csak azokat amelyek tizedesjegyűek (a tizedesjegyek száma nem számít [de később kellhet, ezért azt is szeretném tudni])
megoldás tizedesjegyűek: grep "^[0-9],"

Megint tanultam valamit.

üdv

(#1871) makro válasza prucam (#1870) üzenetére


makro
aktív tag

Picit másként:

echo "Összes szám: "; sed 's/ /\n/g' text.file| grep "^[0-9]";echo;
echo "Egész számok: "; sed 's/ /\n/g' text.file | grep "^[0-9]*$";echo;
echo "Kétjegyű egész számok: "; sed 's/ /\n/g' text.file | grep "^[0-9][0-9]";echo;
echo "Tört számok: "; sed 's/ /\n/g' text.file | grep "^[0-9]*[,].[0-9]*";echo;
echo "Szavak: "; sed 's/ /\n/g' text.file | grep "^[a-zA-Z]*$";echo;

(#1872) prucam válasza makro (#1871) üzenetére


prucam
tag

makro, koszi szepen a sed-es megoldast is.

:C

(#1873) prucam


prucam
tag

sziasztok,

az awk-hoz kérnék most segítséget. *.htm file-kben keresek, itt a parancs:

w3m -dump /mnt/mappa/mappa/mappa/tobb_mappa/1-20/*.htm | awk '/*ty:*/ { print $0 }'

Ez jó megtalálja ami kell a "…/tobb_mappa/1-20/"-ban. De, van több almapa is.

…/tobb_mappa/1-20/
…/tobb_mappa/21-30/
…/tobb_mappa/31-40/
…/tobb_mappa/41-50/
… stb.

Azt hogyan lehetne megcsinálni, hogy ne csak a "…/tobb_mappa/1-20/"-ban, hanem "…/tobb_mappa/" összes almappáiban is kerssen.

üdv

(#1874) bambano válasza prucam (#1873) üzenetére


bambano
titán
LOGOUT blog

alapvetően több lehetséges megoldás van, mind a find-en alapszik.
vagy megkeresteted az összes könyvtárat:

find kezdokonyvtar -type d

és ezeket feldoldoztatod a w3m-mel csillagozva, vagy megkeresteted az összes html fájlt adott könyvtártól lefelé, és ezeket egyesével dolgozod fel:

find kezdokonyvtar -name '*.html'

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

(#1875) Jester01 válasza bambano (#1874) üzenetére


Jester01
veterán

De sokkal egyszerűbb a w3m -dump /mnt/mappa/mappa/mappa/tobb_mappa/*/*.htm

Jester

(#1876) bambano válasza Jester01 (#1875) üzenetére


bambano
titán
LOGOUT blog

ez abban az esetben jó, ha:
- a könyvtárrendszer mélysége pontosan ugyanannyi
- a nevek beleférnek a shell által az argumentumlistának fenntartott memóriába.

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

(#1877) prucam válasza bambano (#1876) üzenetére


prucam
tag

Sziasztok,

próbálgatom de nem igazán megy. Tudom, egyszerűbb volna ha minden file egy könyvtárban lenne.

Bambano, a könyvtár pontos elérését tudom. Nem értem a "find"-ot hogyan kapcsoljam össze:

find /mnt/mappa/mappa/mappa/tobb_mappa/ -type d | w3m -dump *.htm | awk …
v.
find …/tobb_mappa/ -name '*.htm' | w3m -dump | awk …

Jester01

"De sokkal egyszerűbb a
w3m -dump /mnt/mappa/mappa/mappa/tobb_mappa/*/*.htm"

Ez nekem az első két almappában dolgozik (azt tök jól!), a harmadikba már nem.

üdv

[ Szerkesztve ]

(#1878) bambano válasza prucam (#1877) üzenetére


bambano
titán
LOGOUT blog

vagy xargs-sal:
find ... | xargs w3m ... | awk

vagy exec-kel:

find .. -name '*.htm' -exec w3m -dump {} \; | awk

fejből írtam, remélem, jók.

szerk: ha szóköz van a könyvtárnevekben, abból baj szokott lenni... akkor a {}-t idézőjelek közé kell tenni.

[ Szerkesztve ]

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

(#1879) prucam válasza bambano (#1878) üzenetére


prucam
tag

siker!!!

find … -name '*.htm' | xargs w3m -dump | awk …

köszi szépen

:R

Azt meglehetne-e még "buherálni", hogy az erdménynél lássuk a forrásfile (útvonal v. anélkül; ahogy lehet) nevét is. eredmény pl.:

2.htm …
11.htm …
18. htm …

üdv

(#1880) mithras91


mithras91
csendes tag

Üdv!

Egy olyan problémám lenne ,hogy kell írnom egy shell scriptet ami számokat vált át különböző számrendszerekbe. Ez eddig oké, csak van egy olyan kérés,hogy így lehessen futtatni:

&./szamvalt.sh -f 2 -c 10 1001
9
&./szamvalt.sh -f 16 -c 10 FF
255
&./szamvalt.sh -f 10 -c 16 127
7F

Ebben szeretnék egy kis segítséget kérni,hogy ezeket a kapcsolókat miként kéne hozzá adni?
Előre is köszönöm :R

(#1881) Jester01 válasza mithras91 (#1880) üzenetére


Jester01
veterán

Az argumentumok a $1,$2,$3 ... változókban érhetők el. Attól függően mennyire kell bonyolult megoldás lehet az egészen egyszerűtől (ami a sorrendre épít és nem ellenőrzi a kapcsolókat) a kifinomultig (getopt) választani megvalósítást.

Jester

(#1882) mithras91 válasza Jester01 (#1881) üzenetére


mithras91
csendes tag

köszönöm szépen :)

(#1883) rafanadal


rafanadal
csendes tag

Sziasztok!

Van egy beadandó feladatom 2hetem van rá, de sajnos bele se tudok kezdeni, mert egyetemi órákon, nem csináltunk ilyen nehézségű feladatokat. A feladat ez lenne
valaki tud segiteni, hogyan induljak el? Vagy hogyan kéne megcsinálni? Tanácstalan vagyok és nem akarom hogy emiatt ne sikerüljön a tárgy a félévben

(#1884) rafanadal válasza rafanadal (#1883) üzenetére


rafanadal
csendes tag

Na a programot időközben félig elkészítettem. A bruttó része kész. Olyan kérdésem lenne, hogyan tudom azt a funkciót megoldani, hogy ha a felhasználó az n karaktert beviszi akkor átváltson és nettó adatokat kérjen be?

(#1885) Jester01 válasza rafanadal (#1884) üzenetére


Jester01
veterán

if [ "x$1" = "x-n" ] ...

(a feladatban -n kapcsoló szerepel, nem n karakter bevitel)

[ Szerkesztve ]

Jester

(#1886) rafanadal


rafanadal
csendes tag

Sziasztok!

Ebben a kis részben, hogy tudnám a scale utáni számítási részt egy x nevű változóban eltárolni, hogy tudjak rá hivatkozni rá később? Aritmetikai hibába kerülök folyton. Később azt az értéket szeretném felhasználni egy feltétel vizsgálatban.

(#1887) dabadab válasza rafanadal (#1886) üzenetére


dabadab
titán

x="$( echo ""3+2+$n*12"" | bc )"

[ Szerkesztve ]

DRM is theft

(#1888) adam24466


adam24466
újonc

Sziasztok!
Nekem az lenne a kérdésem hogy hogy lehet azt megcsinálni hogy ha a txt fájlon belül talál egy karaktert (pl:@) akkor attól tovább ne írja ki a begépelt szöveget csak addig?

A válaszokat előre is köszönöm!

(#1889) Jester01 válasza adam24466 (#1888) üzenetére


Jester01
veterán

Az attól függ a @ önmagában van-e egy sorban és azt a sort ki kell-e még írni, illetve a sornak a @ előtti részét.

A legegyszerűbb eset, ha azt a sort még ki lehet írni:
sed -n '1,/@/ p' < in.txt

Jester

(#1890) Pttypang


Pttypang
veterán

Sziasztok!

A beadandom lenne az alabbi script, aminek ket parameter (egy karakterlanc es egy fajlnev) beolvasasa utan meg kenevizsgalnia, hogy szerepel e a beolvasott karakterlanc az adott fajlban.
Azonban valamiert nem talalja a fajlt. Mi lehet a gond? o.O

echo "Kerem a keresendo karakterlancot:\n"
read karlanc
echo "Kerem a fajlnevet:\n"
read fajlnev
if grep $karlanc $fajlnev 1
then
echo "Tartalmazza a fajl a karakterlancot\n"
else
echo "Nem tartalmazza a fajlnev a karakterlancot"
fi

Amivel probaltam, az a valami.txt fajl es az asd szoveg. A txt tartalmazza ezt, kozvetlenul a script fajl melle van elhelyezve.

[ Szerkesztve ]

Everybody lies.

(#1891) beleszólok válasza Pttypang (#1890) üzenetére


beleszólok
senior tag

Az az "1" mi ott a végén?
Ugyanis ez így egy 1 nevű fájlt keres, arra üzen, hogy nem találja.
Egyébként javasolnám, hogy legalább a keresendő mintát tedd idézőjelek közé, mert ha szóköz vagy egyéb spec. karakter kerül bele, az gondot okozhat.

Ha netán az 1 eredetileg valamiféle átirányításhoz tartozott volna, akkor helyette inkább &>/dev/null lenne célszerű (stdout, stderr átirányítása a null eszközre - feltéve, hogy bash-ről van szó)

Szóval valahogy így:
if grep "$karlanc" $fajlnev &>/dev/null

[ Szerkesztve ]

Tiszavirág: http://youtu.be/YdcsiW0kfso

(#1892) Pttypang válasza beleszólok (#1891) üzenetére


Pttypang
veterán

Az if miatt gondoltam, hogy szukseges valamilyen erteket megadni a grep kereseshez, amit igaznak vesz, de enelkul mar megy, koszonom.
A karakterlancot idezojelbe tettem, a fajlnevet is erdemes gondolom akkor.

Everybody lies.

(#1893) beleszólok válasza Pttypang (#1892) üzenetére


beleszólok
senior tag

Fájlnév esetében nem egyértelmű: ha idézőjelbe teszed és pl. * kerül a fájlnévbe, mert mondjuk több fájlban akarsz keresni, akkor kap(hat)sz egy hibát, hogy nem találja a fájlt, mert idézőjelek közt a wildcardokat nem bontja ki a shell.

Tiszavirág: http://youtu.be/YdcsiW0kfso

(#1894) Pttypang válasza beleszólok (#1893) üzenetére


Pttypang
veterán

A feladat leirasaban egy fajlnev szerepel, szoval inkabb idezojelekbe teszem.

Két paramétert kap a script, az egyik egy fájlnév, a másik egy karakter minta. Határozza meg, hogy az adott nevű fájlban van-e a paraméterkent
kapott karakterlánc!

Everybody lies.

(#1895) dabadab válasza beleszólok (#1893) üzenetére


dabadab
titán

"Fájlnév esetében nem egyértelmű: ha idézőjelbe teszed és pl. * kerül a fájlnévbe, mert mondjuk több fájlban akarsz keresni, akkor kap(hat)sz egy hibát, hogy nem találja a fájlt, mert idézőjelek közt a wildcardokat nem bontja ki a shell."

Ez nem igy megy.

Abban igazad van, hogy az echo "*" egy csillagot fog kiirni, viszont itt nem errol van szo, az idezojelek kozott csak a valtozobehelyettesites zajlik le, a wildcardozas egy masik menet, ez mar megy:

FILE="*"
echo "$FILE"

A lenyeg: tessek csak mindent idezojelek koze rakni.

[ Szerkesztve ]

DRM is theft

(#1896) beleszólok válasza dabadab (#1895) üzenetére


beleszólok
senior tag

x='*'
echo $x

Mit kapsz?
Szerintem az aktuális könyvtár tartalmát. (cygwin bash alatt kipróbáltam, mert elbizonytalanodtam)
És erről beszélek: ha inputként csak egyetlen fájl nevét lehet megadni, akkor kell az idézőjel. Ha lehet benne wildcard, akkor nem jó, ha idézőjelbe teszi, mert a read nem fogja behelyettesíteni, idézőjelbe tett változót meg már nem boncol tovább a shell.

Tiszavirág: http://youtu.be/YdcsiW0kfso

(#1897) BullZeye


BullZeye
veterán

Kezdek megbolondulni, és nagyon kéne egy hozzáértő külső szem, mert egyszerűen nem veszem észre a hibát.

Transmission-höz csináltam egy scriptet régebben, ami bizonyos trackereket külön véve törli transmissionből a torrentet, és áthelyezi egy !Delete mappába a tartalmat. Mikor utoljára hozzányúltam tavaly, akkor csak annyi kellett, hogy a "Morning Show" letöltések amik alapból egy specifikus mappába töltődnek onnan ne kerüljenek ki, így bekerült egy + sor, és ez működött sok sok időn keresztül, aztán jött még 2 sorozat ami egy mappába töltődik rögtön, és nem szeretném, ha onnan átkerülne a !DELETE mappába, és itt jöttek a bajok, csak beleírtam +2 változót, és azóta nem megy egyik sem. :)

Rátudna valaki nézni, hogy mit rontottam el?

Tökéletesen működik a script, egy bajom van vele, hogy !Delete (MOVEDIR) mappába kerül Fairy Tail || Naruto || Morning Show.

if [ "$MORNING_SHOW" = "" ] || [ "$FAIRY_TAIL" = "" ] || [ "$NARUTO" = "" ]; then
transmission-remote --auth=$USER:$PASSWD --torrent $TORRENTID --move $MOVEDIR

Azaz ha változó=nulla, akkor nem morning show, VAGY fairy tail VAGY naruto, így azt át kell helyezni, ellenben áthelyez ez most mindent :D

Teljes script:
http://pastebin.com/U9v7tvKB

[ Szerkesztve ]

(#1898) bambano válasza BullZeye (#1897) üzenetére


bambano
titán
LOGOUT blog

alaposabb szemrevételezés nélküli vélemény:
normális ember nem ad felkiáltójeles nevet egy mappának, mert ki tudja, melyik shell hogy értelmezi és melyik hiszi, hogy az egy logikai kifejezés, ami tagadással kezdődik.

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

(#1899) bambano válasza BullZeye (#1897) üzenetére


bambano
titán
LOGOUT blog

egyébként pedig kihagytál két egyenlőségjelet:

ez jó: MORNING_SHOW=`transmission-remote ...
ezek nem:
FAIRY_TAIL`transmission-remote...
NARUTO`transmission-remote

szerk: és szokjunk le a fordított aposztrófról, mert deprecated. $( ) a helyes szerkezet.

[ Szerkesztve ]

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

(#1900) beleszólok válasza bambano (#1899) üzenetére


beleszólok
senior tag

Ezt beszéld meg Zahyval is! ;)

Tiszavirág: http://youtu.be/YdcsiW0kfso

Copyright © 2000-2024 PROHARDVER Informatikai Kft.