So finden Sie mehrere nicht aufeinanderfolgende Buchstaben in einem Dateinamen

So finden Sie mehrere nicht aufeinanderfolgende Buchstaben in einem Dateinamen

Ich habe ein Verzeichnis mit Dateien namens „Hello“, „Help“, „Helol“, „Lla“, „Lalala“ und „Hi“. Ich muss in der Lage sein, nur Dateien aufzulisten, die mindestens zwei „l“ im Namen haben und diese „l“ dürfen nicht aufeinander folgen (es sei denn, es gibt noch ein weiteres „l“, das nicht aufeinander folgt). Daher sollten nur „Helol“, „Lla“ und „Lalala“ aufgelistet werden.

Antwort1

Glob-Muster verwenden:

*l[^l]*l*
  • [^l]entspricht jedem Zeichen außerl

  • *entspricht null oder mehr Zeichen

  • lentspricht wörtlicheml

Beispiel:

$ ls
hello  helol  help  hi  lalala  llala

$ ls *l[^l]*l*
helol  lalala  llala

verwandte Informationen