PDA

Bekijk Volledige Versie : RegExp in ls



Daan__
01/12/09, 10:42
Ik heb een map met

# ls
0003 0020 0033 0046 0059 0072 0085 0098 0111
0006 0021 0034 0047 0060 0073 0086 0099 0112
0007 0022 0035 0048 0061 0074 0087 0100 0113
0009 0023 0036 0049 0062 0075 0088 0101 0114
0010 0024 0037 0050 0063 0076 0089 0102 0115
0011 0025 0038 0051 0064 0077 0090 0103 0116
0012 0026 0039 0052 0065 0078 0091 0104 0117
0013 0027 0040 0053 0066 0079 0092 0105 0118
0014 0028 0041 0054 0067 0080 0093 0106 0119
0015 0029 0042 0055 0068 0081 0094 0107
0016 0030 0043 0056 0069 0082 0095 0108
0017 0031 0044 0057 0070 0083 0096 0109
0018 0032 0045 0058 0071 0084 0097 0110

Nu wil ik alle mappen hebben in ls die hoger zijn als 0018

Ik krijg de regexp niet voor elkaar, wie kan mij helpen??

mikeh
01/12/09, 10:48
Hi,

Wat heb je tot dusver geprobeerd?
Ik ben niet te beroerd om je de regular expression daarvoor hier neer te plakken, echter lijkt het me beter dat je het zelf leert :-)

Groet,
Mike

Daan__
01/12/09, 10:49
Ik krijg niet voorelkaar dat hij meerdere karakters in 1 optie krijgt.

Ik zou zoiets willen als:

ls 0[18-119] maar die gaat dus niet op.

PreServer
01/12/09, 13:46
De regex zou dit moeten zijn:

~^\d{1,4}(?<!(000\d|001[0-8]))$~

Daan__
01/12/09, 18:10
ls ~^\d{1,4}(?<!(000\d|001[0-8]))$~
-bash: !: event not found

?<! is mij ook onbekend, waar dient dat voor?

Ik draai CentOs

PreServer
01/12/09, 18:47
probeer is:

ls -1 | egrep "~^\d{1,4}(?<!(000\d|001[0-8]))$~"

(?<! is negative lookback

De regex is goed, deze werkt onder php/pcre meschien dat het voor grep iets aangepast moet worden, heb ik wel eens eerder ruzie mee gehad

Daan__
01/12/09, 19:59
Hmm nog steeds..

ls -1 | egrep "~^\d{1,4}(?<!(000\d|001[0-8]))$~"
-bash: !: event not found

Ik zal morgen weer eens verder puzzelen.. Bedankt evengoed!

PreServer
01/12/09, 21:16
probeer is met single quotes ipv double

ls -1 | egrep '~^\d{1,4}(?<!(000\d|001[0-8]))$~'