[linux] Re: reguliere expressies en ls

Kees Theunissen theuniss op rijnh.nl
Wo Dec 7 20:56:17 CET 2005


On Wed, 7 Dec 2005, Cecil Westerhof wrote:

>Op wo, 07-12-2005 te 14:36 +0100, schreef Paul Slootman:
>> > Op het ogenblik gebruik ik iets als:
>> >     ls -1 [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\.txt
>> > Wat ik eigenlijk zou willen gebruiken is iets in de trant van:
>> >     ls -1 [0-9]{10}\.txt
>> > Dit werkt echter niet. Is er een manier om dit wel voor elkaar te
>> > krijgen?
>>
>> Dit wordt door de shell geinterpreteerd, niet door ls (of welk ander
>> commando in zo'n geval).  De shell doet aan "glob" expansions, niet aan
>> regexp matching.
>>
>> Daarnaast, {n} is een extended regexp, geen gewone regexp.
>
>Heb er al iets gevonden:
>	ls -1 <DIR>/* 2>/dev/null | grep '/[0-9]\{10\}\.txt$'
>Doet wat ik wil.
>De 2>/dev/null is om de foutmelding die je bij een lege directorie
>krijgt te voorkomen.

Ja, als de dir leeg is dan vindt er geen "glob" expansions plaats.
In dat geval vraag je om een ls van een file met de letterlijke naam *
en die is er dus niet.
Als je zelf niet zo nadrukkelijk om een foutmelding zou vragen
dan hoef je die ook niet weg te gooien:
    ls -1 <DIR> | grep '/[0-9]\{10\}\.txt$'


Groeten,

Kees.

-- 
Kees Theunissen
F.O.M.-Instituut voor Plasmafysica "Rijnhuizen", Nieuwegein
E-mail: theuniss op rijnh.nl,     Tel: 030-6096724,     Fax: 030-6031204



More information about the Linux mailing list