2016-07-29 13 views
0

Wenn ich einen grep-Befehl wie diesen ls | grep '^[-[:alnum:]\._]+$' verwende, um Dateinamen abzugleichen, gibt es kein Ergebnis aus, aber wenn der Befehl zu ls | grep '^[-[:alnum:]\._]*$' wechselt, funktioniert es richtig. Was ist los?Warum hat dieser Befehl grep keine Ausgabe?

+0

'*' = 0 oder mehr. '+' = ein oder mehrere. so offensichtlich passte deine '+' Regex nichts zusammen. –

+0

Ich weiß, dass aber Dateinamen müssen einen oder mehrere –

Antwort

1

grep verwendet "basic" regexes von default, wobei + ein normales Zeichen ist. Sie benötigen \+, um 1 oder mehrere Dinge zu finden (oder verwenden Sie grep -E).

+0

Dankeschön. Es klappt! –