Die g
Option (zB s/pattern/replacement/g
) für viele Werkzeuge , dass die Verwendung Regex-Stil Pattern Matching und der :g
Befehl in ed
, ex
, vi
, und vim
haben ziemlich ähnliche Nutzung und Bedeutung: erfüllt die regex „global“, das heißt, nicht aufhören nach dem ersten Spiel.
Ich habe eine zweifache Frage dazu:
- Was war zuerst da, der
:g
Befehl oder dasg
Mustervergleichsflag und in welchem Tool? Es sieht so aus, als ob die meisten Tools (z. B.sed
), die dasg
Flag für die Mustererkennung verwenden, nur direkt oder indirekt emulierened
. Zum Beispiel erlauben im Post-Perl-Zeitalter die meisten Tools, die Regex verwenden, dasg
Flag, weil Perl dies tut, und Perl, wie es scheint, tut es, weiled
->sed
->Perl
. Es würde mich also nicht wundern, wenn die Antwort lautet: "Sie wurden gleichzeitig in das ursprünglicheed
Tool eingeführt und haben darüber hinaus keinen historischen Präzedenzfall." - Warum wird dies als
global
Option (oder Befehl) bezeichnet? Es ist wirklich nichts "Globales" daran; Der:g
Befehl nimmt wie jeder andereed
Befehl eine Reihe von Zeilen ein , und dasg
Flag erweitert den Suchbereich in keiner Weise (es erlaubt nur mehrere Treffer). Ich denke, ich kann mir keinen besseren Namen vorstellen , aber der Auserwählte scheint mir nur seltsam, also frage ich mich, ob es einen Grund dafür gibt, den ich nicht sehe.
g
Befehl ed (1) ist insofern global, als er einen (normalerweise einzeiligen) Befehl auf mehrere Zeilen anwendet .