On 05/31/2010 11:40 AM, Petru Ratiu wrote:
> 2010/5/31 Adrian Sevcenco <[email protected]>:
>> Salut! incerc in bash sa listez fisierele ce nu se termina cu o anume
>> extensie .. de exemplu:
>> am un director cu fisiere de tipul a.b (a e denumire statica, b e data
>> logului)... o parte din ele sunt deja comprimate si au forma a.b.bz2
>> cum pot lista in bash astfel incit sa imi returneze ce nu se termina cu bz2?
>> am incercat :
>> ls -1 a.*[^.bz2]
>>
>> Partea stranie e ca pe 75% din fisiere a mers (ca le am comprimate ..)
>> pina in momentul in care :
>> alip...@storage01: server $ ls -1 cmslog.*[^.bz2]
>> ls: cmslog.*[^.bz2]: No such file or directory
> 
> Globbingul din bash nu e regexp, .*[^.bz2] e interpretat ca altceva
> (si nici in regexp nu prea inseamna ce ai vrea tu sa insemne.
> 
> E posibil sa mearga si din globbing (desi nu-mi vine nimic in minte,
> dar mai sanatos IMHO  e sa faci cu ceva comanda externa:
> 
> ls | grep -v '\.bz2$'
> 
> sau:
> 
> find . -maxdepth 1 -mindepth 0 -not -name '*.bz2' -printf '%P\n'
> 
> (ma rog, solutia cu find e ceva mai puternica pentru ca poti ca in loc
> de -prinf sa trantesti un -exec cu ce vrei tu de fapt sa faci cu alea)
> 
> HTH,
It helps for sure :)
Multumesc de raspunsuri! La ambele nu ma gindisem (sa trec prin grep)
sau de -not (asta nu stiam :D)

Adrian

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui