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
