regex glob in shell
Pierre Bernhardt
pierre at starcumulus.owl.de
Sat Sep 2 20:56:16 CEST 2006
Hallo,
ich habe ein kleines Problem welches ich nicht verstehe.
In der bash geht es, in der ksh net:
Damit es in der Bash geht, habe ich erst mal extended
globbing eingeschaltet:
shopt -s extglob
So nun zu meinem Problem:
Ich versuche mittels folgenden Befehl mir alle Dateien
anzeigen zu lassen, welche auf folgendes Muster passen:
pierre at starflake ~
$ touch PRE.{102,343,342,1}.ext
pierre at starflake ~
$ ls
PRE.1.ext PRE.102.ext PRE.342.ext PRE.343.ext
pierre at starflake ~
$ pt=102
pierre at starflake ~
$ echo PRE.!(${pt}).ext
PRE.1.ext PRE.342.ext PRE.343.ext
Bis hier her gehts auch so in der ksh.
Nun aber folgendes:
bash:
pierre at starflake ~$ pt=102\|1
pierre at starflake ~$ echo PRE.!(${pt}).ext
PRE.342.ext PRE.343.ext
ksh:
pierre at starflake ~$ pt=102\|1
pierre at starflake ~$ echo PRE.!(${pt}).ext
PRE.1.ext PRE.342.ext PRE.343.ext
Geht nicht.
Jetzt mal ein Test:
pierre at starcflake ~$ echo PRE!(102|1).ext
PRE.342.ext PRE.343.ext
Geht.
pierre at starcflake ~$ touch PRE.102\|1.ext
pierre at starcflake ~$ echo PRE.!(${pt}).ext
PRE.1.ext PRE.342.ext PRE.343.ext
pierre at starcflake ~$ echo PRE!(102|1).ext
PRE.102|1.ext PRE.342.ext PRE.343.ext
Aha. Das oder-Zeichen ist kein oder-Zeichen.
Ich habe schon alles mögliche mit ausmaskieren versucht,
aber keine Lösung gefunden. Auch eval funktioniert
hier nicht, da eval gleich ne Pipe draus macht.
Hat irgend wer noch eine Idee, da ich diese
Möglichkeiten des Globbings sehr Hilfreich finde,
aber leider das Tool, dem ich die Befehle unterjuble,
diese nur an eine ksh weiter geben kann.
Getestet ist es übrigens auf eine Debian Sarge mit bash
2.05b.0(1) und der AT&T ksh (Paket ksh).
MfG...
Pierre Bernhardt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 290 bytes
Desc: OpenPGP digital signature
URL: <http://lug-owl.de/pipermail/linux/attachments/20060902/9e0eda1f/attachment.sig>
More information about the Linux
mailing list