Kezdőoldal » Számítástechnika » Programok » Az ls paranccsal Linux alatt...

Az ls paranccsal Linux alatt hogy lehet sorbarendezve kiíratni csupán számokat tartalmazó fájlneveket?

Figyelt kérdés

#linux #rendezés #LS #csak számok
2015. jún. 9. 04:49
1 2
 1/13 Tengor ***** válasza:

Sehogy. Kell, hozzá a grep is és egy jó reguláris kifejezés (<reg. kif.>). Ekkor valami ilyesmi lesz:

ls | grep <reg. kif.>

A reguláris kifejezésekben mindig gyenge voltam, így azt rád bízom.

2015. jún. 9. 06:57
Hasznos számodra ez a válasz?
 2/13 anonim ***** válasza:

Példa (bemenet):

0.jpg

1.jpg

2.jpg

33213_hh

3.jpg

4223

hozzajarulas.png

munkaltatoi_2.png

munkaltatoi.png

palyazoi.png


Egyszerű (de nem minden esetre működő) megoldás:

ls -1 --ignore="[^[:digit:]]*"

(így csak ls-el oldottuk meg, ellenben nem a várt eredményt kaptuk!)

Kimenet:

0.jpg

1.jpg

2.jpg

33213_hh

3.jpg

4223


Tökéletes megoldás:

ls | sed -e 's/\..*$//' | egrep '^[0-9]+$'

(ebben az esetben eltávolítom a kiterjesztéseket ha vannak, majd a végén csak a számokat tartalmazó bejegyzéseket jelenítem meg)

Kimenet:

0

1

2

3

4223


Mivel nem adtad meg mit használhatsz és mit nem, vagy mihez kell (feladat, vagy saját célból) így több megoldást is vázoltam. Válogass...

2015. jún. 9. 07:56
Hasznos számodra ez a válasz?
 3/13 anonim ***** válasza:

Helyesbítek nem tökéletes az sem, hiszen lemaradtak a kiterjesztések így hivatkozni azt nem tudsz rá. Tehát mint mondtam... attól függ mire kell!

Továbbá a sorba rendezést is kifelejtettem.

eddigikifejezés | sort -n

2015. jún. 9. 08:03
Hasznos számodra ez a válasz?
 4/13 kovpet ***** válasza:
A csupán számokat tartalmazó fájlnevekben nincs más, csak szám. Tehát a 0.jpg nem ilyen, hiszen szerepel benne számokon kívül más is.
2015. jún. 9. 10:22
Hasznos számodra ez a válasz?
 5/13 anonim ***** válasza:

Ez megközelítés kérdése! Mi a fájlnév? Windows-os felfogással az utolsó pont előtti rész. Linux esetében pedig az egész, hiszen nincs kiterjesztés!

Tehát általánosságban fájlnévnek azt szoktuk azért hívni, ami a kiterjesztés előtt van - ha van kiterjesztés.

2015. jún. 9. 10:27
Hasznos számodra ez a válasz?
 6/13 kovpet ***** válasza:
A kérdés Linuxról szólt.
2015. jún. 9. 10:30
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:

Számomra akkor sem ilyen egyértelmű, mert az esetek 99%-ban van a fájloknak kiterjesztése ami bár a linuxot hidegen hagyja, mégsem tekinthető a fájlnév részének az általános értelmezés szerint. Ha azt mondjuk alma.jpg-t nevezzük át körtére, akkor korte.jpg-re fogjuk és nem korte-re!

A feladat pontos ismerete nélkül egyébként hiába vitatkozunk... :)

2015. jún. 9. 11:18
Hasznos számodra ez a válasz?
 8/13 tabaki ***** válasza:

Szerintem azzal lehet a probléma, hogy a listázás a számokat nem az értékük, hanem a karakterkódjuk alapján állítja sorba. Hogy ezt már kész nevek esetén lehet-e másképpen értelmeztetni, azt nem tudom, a szokásos megoldás az, hogy a fájlokat eleve megfelelő számú fölvezető nullával nevezed el. Így a (mondjuk) 2028.jpg, 405.jpg, 52.jpg, 7.jpg sorrendű fájlok a helyes 0007.jpg, 0052.jpg, 0405.jpg, 2028.jpg sorrendben listázódnak. A feladat ismerete nélkül nemigen lehet megítélni, hogy ez megoldás-e a problémádra, mindenesetre homályos emlékeim szerint a fájl-átnevező programok képesek így átalakítani a fájlneveket. Konkrét programot most nem tudok neked javasolni, mert indulok az egyéb dolgaim után, és nem emlékszem, hogy valaha mit használtam erre. Próbálj rákeresni:

[link]

2015. jún. 9. 11:58
Hasznos számodra ez a válasz?
 9/13 A kérdező kommentje:

Eredetileg ezek az inputok.:


file.1

file.2

file.3

file.4

....

file.n


Elvileg az ls -X kiterjesztés szerint rendez sorba...

De a fenti nevekre ez sem működött.


Linuxban shell scriptben átírtam őket.:

1

2

3

4

...

n


Azt hittem az ls, így már sorbarendezi őket, de tévedtem.


Az a baj, hogy más rendezési elv nem alkalmazható, mert pl. ha utolsó módosítás ideje alapján rendezem, akkor nem lesz sorrend, mivel a fájlok parallel futások eredményei, amelyek időben azserint értek véget, hogy mennyi számítást igényeltek az inputok...

2015. jún. 9. 14:51
 10/13 kovpet ***** válasza:
"ls -1 | sort -n" ?
2015. jún. 9. 15:19
Hasznos számodra ez a válasz?
1 2

További kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!