Macht die bash-support-Wort-Grenze reguläre Ausdrücke?

Ich bin versucht, auf das Vorhandensein eines Wortes in einer Liste hinzufügen, bevor wieder dieses Wort (um Duplikate zu vermeiden). Ich bin mit der bash 4.2.24 und versuche die unten:

[[  $foo =~ \bmyword\b ]]

auch

[[  $foo =~ \<myword\> ]]

Jedoch weder zu funktionieren scheint. Sie sind erwähnt in der bash docs Beispiel: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_04_01.html.

Ich vermute ich mache etwas falsch, aber ich bin nicht sicher, was.

  • Nebenbei: das Verhalten der bash ist =~ Betreiber ist Plattform-abhängig, da die host-Plattform mit der regex-Bibliotheken verwendet. So, zum Beispiel, auch mit dem workaround in der akzeptierten Antwort, \b und \< / \> funktionieren nicht auf BSD-ähnlichen Systemen wie OSX. Umgekehrt OSX unterstützt [[:\<:]] und [[:\>:]], die nicht auf Linux zu arbeiten.
InformationsquelleAutor starfry | 2012-03-20
Schreibe einen Kommentar