Hozzászólások
sziasztok!
lenne egy elég láma kérdésem, de nem bírok dűlőre jutni vele
ha van a /tmp/test könyvtárban egy csomó test-szöveg és test-szám nevű fájl, és azokat szeretném szétválasztani:
a test-szöveg típusúakat a /tmp/szovegbe, a test-szám típusúakat a /tmp/szamba
ilyesmit csináltam, de nem jön össze:[code:1:3f9dd8aa18]for i in `ls |grep test-[:digit:]`
do
mv $i /tmp/szam
done
# már csak a test-szöveg marad
mv test-* /tmp/szoveg[/code:1:3f9dd8aa18]
a dolgot persze bonyolítja, h nemcsak test-* fájlok vannak a könyvtárban
so hogyan lehetne kilistázni a test-szám típusú fájlokat, ha nem jön össze ls |grep [:digit:]-tel?
- A hozzászóláshoz be kell jelentkezni
[code:1:bf181e9a22]ls|egrep '^test-[[:digit:]]+$'[/code:1:bf181e9a22]
- A hozzászóláshoz be kell jelentkezni
hm, kösz. ezzel műxik :D
két kérdés: minek a +$ a végére?
az egrepnek miért kell két [[ meg ]]? :?
- A hozzászóláshoz be kell jelentkezni
[quote:048d35eaea="vmiklos"]hm, kösz. ezzel műxik :D
két kérdés: minek a +$ a végére?
az egrepnek miért kell két [[ meg ]]? :?
$ sorvege
^ soreleje
+ 1, vagy tobb
* 0, vagy tobb
? 0,1
egyebkent:
man grep
man perlretut
- A hozzászóláshoz be kell jelentkezni
[quote:5f49d82236="anr"][quote:5f49d82236="vmiklos"]hm, kösz. ezzel műxik :D
két kérdés: minek a +$ a végére?
az egrepnek miért kell két [[ meg ]]? :?
$ sorvege
^ soreleje
+ 1, vagy tobb
* 0, vagy tobb
? 0,1
ok, kösz ez idáig megvan
a két [[ meg ]]-ről a grep manja nem ír. és persze egy [/]-lel meg nem műxik.
igazába ezt nem értem :wink:
- A hozzászóláshoz be kell jelentkezni
[quote:8b370ed9b9="vmiklos"]hm, kösz. ezzel műxik :D
két kérdés: minek a +$ a végére?
az egrepnek miért kell két [[ meg ]]? :?
A +$ -bol a + azert kell, mert nem csak egy szamjegyu lehet a szam. A + jel az elozo mintaresz legalabb egyszeri elofordulasat jelenti.
A $ jel a sor vegere utal, igy nem ad vissza olyan fileneveket, mint pl. test-34alma.
A szogletes zarojel nem csak az egrep-ben van duplan. A normal grep-ben is dupla kellene, a kulonbseg csak annyi, hogy a grep-ben a + jelet le kell vedeni:
[code:1:8b370ed9b9]ls|grep 'test-[[:digit:]]\+$'[/code:1:8b370ed9b9]
A ket zarojel ugy alakul, hogy a kulso par jelzi, hogy ott egy halmazt adsz meg. Igy lehet irni a [[:digit:]] helyet pl. [1234567890]-et, vagy [0-9]-et.
A halmazmegadason belul lehet meg egy [:digit:] szimbolumot hasznalni a szamjegyekre. pl: irhatsz [abc[:digit:]ef] -et is, ami a [asc1234567890ef]-nek felel meg.
- A hozzászóláshoz be kell jelentkezni
[quote:d71f2d8f52="vmiklos"]ok, kösz ez idáig megvan
a két [[ meg ]]-ről a grep manja nem ír. és persze egy [/]-lel meg nem műxik.
igazába ezt nem értem :wink:
De:
For example, [[:alnum:]] means [0-9A-Za-z]
;)
- A hozzászóláshoz be kell jelentkezni
[quote:61e5c70fd9="miq"]A szogletes zarojel nem csak az egrep-ben van duplan. A normal grep-ben is dupla kellene, a kulonbseg csak annyi, hogy a grep-ben a + jelet le kell vedeni:
[code:1:61e5c70fd9]ls|grep 'test-[[:digit:]]\+$'[/code:1:61e5c70fd9]
A ket zarojel ugy alakul, hogy a kulso par jelzi, hogy ott egy halmazt adsz meg. Igy lehet irni a [[:digit:]] helyet pl. [1234567890]-et, vagy [0-9]-et.
A halmazmegadason belul lehet meg egy [:digit:] szimbolumot hasznalni a szamjegyekre. pl: irhatsz [abc[:digit:]ef] -et is, ami a [asc1234567890ef]-nek felel meg.
köszi, megint tanultam vmit! :wink:
- A hozzászóláshoz be kell jelentkezni