2011/12/6 Camelia Nastase <[email protected]>:
>>
>> Salut! Incerc sa fac o chestie simpla in bash fara sa ma incurc cu find
>> (sau perl):
>> vreau sa sterg toate fisierele *.C ce NU contin PWG4 din directorul
>> curent (si atit!) ... (am extglob on)
>> adrian@sev : lhc10h_esd $ ls *.C
>> AnalysisPWG4CDFGRID.C  a.C  flkfk.C  fss.C  v.C
>>
>> adrian@sev : lhc10h_esd $ ls [^PWG4].C
>> a.C  v.C
>>
>> adrian@sev : lhc10h_esd $ ls !(+(PWG4)*.C)
>> lista mare de fisiere din TOATE subdirectoarele ce corespund expresiei
>>
>> Intrebarea e : cum pot sa selectez ce e mai bine din ambele cazuri ?
>> adica
>> 1. matchul sa se faca numai pe directorul curent (fara subdirectoare)
>> 2. matchul sa fie pe expresia "PWG4" si nu pe fiecare litera in parte
>>
>> Multumesc!
>> Adrian
>>
>
> ls -1 | grep "*.C" | grep -v PWG4 | xargs <blabla>
>


Te-ai grabit, grep vrea regexp :)

ls |grep '\.C$' | grep -v PWG4 | xargs rm

Da' daca sunt fisiere cu spatii si alte prostii prin nume, xargs se
sperie, e mai sanatos cu find:

find . -maxdepth 1 -name '*.C' -a ! -name '*PWG4*' -delete

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

Raspunde prin e-mail lui