:%s/hello/HI/gi Wie Sie bemerken, werden alle Vorkommen von "hello" oder "Hello" und sogar "hELLO" durch "HI" ersetzt. Dies ist eine Musterersetzung, bei der die Groß-/Kleinschreibung nicht beachtet wird. Jedes "Hallo" wird durch "HI" ersetzt, obwohl die meisten "Hallo" ein großes "H" haben. Ersetzen Sie Text in einer einzelnen Zeile in Vim Um Text in einer einzelnen Zeile zu ersetzen, müssen wir den Bereich angeben, der den Umfang der Ersetzung auf die aktuelle Zeile begrenzt. Dafür ist es besser, die zu verwenden. Rangbeschreiber. :. Suchen ersetzen vi die. s/Hello/HI/g Sehen Sie, wie nur die erste Zeile betroffen war. Wie Sie sehen können, wurde nur das Muster in der ersten Zeile ersetzt, weil ich den Punkt '. ' Bereichsbeschreibung. Bonus-Tipp: Verwenden Sie ein anderes Trennzeichen Beim Betrachten der Ersatzbefehlssyntax habe ich erwähnt, dass das Muster und die Zeichenfolge durch einen Schrägstrich "/" getrennt sind. Aber was wäre, wenn Sie Text mit vielen Schrägstrichen in einem Muster/einer Zeichenfolge hätten, wie z.
Startseite Allgemein Partnerschaft Stellenmarkt Tiere Immobilien Trauer Auto Ukraine-News: Laut prorussischen Separatisten offenbar 50 Zivilisten aus dem Stahlwerk in Mariupol evakuiert - Nach Einschätzung britischer Geheimdienste erschweren es die westlichen Sanktionen Moskau, beschädigte militärische Ausrüstung zu ersetzen - Russische Luftwaffe intensiviert offenbar die Bombardierungen im Osten der Ukraine - Atomwaffeneinsätze Russlands seien "unzulässig", so Lukaschenko. Das begründete er mit der geografischen Nähe von Belarus zur Ukraine.
In vi wird dies mit dem speziellen Sortiment durchgeführt%::%s/\([[:digit:]]\\)\. \([[:digit:]]\\)/\1:\2:\3/g Man könnte einen Bereich auch explizit verwenden ( $ ist auch POSIX)::1, $s/\([[:digit:]]\\)\. \([[:digit:]]\\)/\1:\2:\3/g Es gibt andere Möglichkeiten, die Grenzen zu erstellen, um IP-Adressen zu vermeiden. Aber mit dem gegebenen Beispiel reicht ein Leerzeichen aus::s/ \([[:digit:]]\\)\. VI-Editor suchen-ersetzen. \([[:digit:]]\\) / \1:\2:\3 /g Ebenso akzeptieren vim und vile \s Leerzeichen, aber POSIX akzeptiert nur ein literales Leerzeichen (wie gezeigt) oder eine Zeichenklasse [:space:]. Die meisten Leute finden das Tippen [ space tab] weniger problematisch als [[:space:]]. Wenn Sie "vi" sagen, können andere Benutzer auf der Grundlage des Standardverhaltens (POSIX) antworten. Einige Editoren, die anstelle von "vi" verwendet werden können, bieten Erweiterungen der Syntax für reguläre Ausdrücke. Eine schnelle Überprüfung zeigt, dass elvis unterstützt auch die Perl-Stil \d und \s, während nvi (die meisten Standard-konformer der vier) nicht.
vi ist ein schneller, schlanker Texteditor, der eine mächtige Konkurrenz zum ebenfalls sehr beliebten nano Editor ist. Der vi Editor auf so gut wie allen Unix- und Linux-Systemen vorhanden und steht auch in Apples Mac OSX im Terminal zur Verfügung. Für Windows gibt es mit dem "vim" ebenfalls eine eigene Version. Suchen ersetzen zeilenumbruch. Vi wird ausschließlich über die Tastatur bedient, daher sollte man die wichtigsten Befehle kennen: Es gibt keine Menüzeile und keine Maus-Untertützung – selbst das Suchen nach Texten, das Einschalten der Zeilennummern oder das Speichern wird über die Tastatur eingegeben. vi: Wechsel zwischen Insert und Command Modus Zunächst muss man zwischen dem Eingabe (Insert) Modus und dem Menü-Modus unterscheiden. Nach Öffnen einer Datei mit einem Befehl wie vi gelangen Sie durch Druck der "i" – Taste in den Eingabemodus. Jetzt kann der Text editiert werden. Um zurück in den Command-Modus zu gelangen, um zum Beispiel die Datei zu schließen oder zu sichern, muss der Eingabemodus mit Druck auf die "ESC" Taste wieder verlassen werden.
user1001836 2015-06-02 в 23:50 Ich muss '12. 22. 54 'in '12: 22: 54' in einem String unten konvertieren, damit es in MS SQL funktioniert. cast('14-JAN-14 06. 65. 22 AM' as datetime), '63. 124. 79. 253'); cast('14-JAN-14 12. 36 AM' as datetime), '63. 253'); cast('14-JAN-14 22. 13. 54 AM' as datetime), '63. 253'); Ich habe versucht, die Datei in vi zu öffnen und wie zu ersetzen:s/(\d\)\. (\d\z)\. (\d\)/$1:$2:$3/g Aber es funktioniert nicht. Bitte helfen 2 Antworten auf die Frage Thomas Dickey 2015-06-03 в 00:13 vi verwendet keine regulären Ausdrücke im Perl-Stil. Sie schrieben:s/(\d\)\. (\d\)/$1:$2:$3/g verwendet jedoch vi die folgende Syntax (vim und vile akzeptieren \d, aber Sie sagten "vi")::s/\([[:digit:]]\\)\. \([[:digit:]]\\)\. \([[:digit:]]\\)/\1:\2:\3/g (Woher kommt das "Z"? ). Der Punkt ist, dass das, was Perl als "veraltet" bezeichnet, die POSIX-Syntax für Rückverweise ist. Suchen ersetzen vi 1. Perl wird natürlich niemals standardisiert, solange Larry Wall in der Nähe ist. Per Kommentar wollte das OP alle Zeilen ändern.
Siehe:help:s und:help:s_flags. Siehe auch diesen Abschnitt zu Befehlszeilenbereichen. Ersetzen Sie mit oder ohne reguläre Ausdrücke Dieser Ersetzungsbefehl kann reguläre Ausdrücke verwenden und entspricht jeder Instanz von foo gefolgt von einem (einem) Zeichen seit dem Zeitraum. In regulären Ausdrücken entspricht jedes Zeichen einem der folgenden Zeichen. Daher werden alle Instanzen von foo gefolgt von einem beliebigen Zeichen in der aktuellen Zeile gefunden. :s/foo. /bar/g 1 fooing fooes fool foobar foosup wird werden 1 barng bars bar barar barup Wenn Sie das Literal anpassen möchten. Zeitraum können Sie es im Suchfeld mit einem Backslash \ entziehen. :s/foo\. /bar/g 1 fooing fooes foo. l foosup wird werden 1 fooing fooes barl barbar foosup Oder deaktivieren Sie alle Musteranpassungen, indem Sie dem Befehl s mit no folgen. Suchen und Ersetzen in VI - 2 Antworten. :sno/foo. /bar/g wird einen Fehler auslösen E486: Pattern not found
Unten ist der Screenshot der Datei, die ich verwenden werde, um die Verwendung des Ersatzbefehls in Vim zu demonstrieren. Grundlegende Textersetzung Für dieses Beispiel habe ich dafür gesorgt, dass die Zeichenfolge "Hello" mehrmals in mindestens einer Zeile und mehrmals in der Datei vorkommt. Ich möchte "Hallo" durch die Zeichenfolge "HI" ersetzen. Unten ist der Vim-Befehl, um das zu tun::%s/Hello/HI/g Ersetzen Sie durch Festschreiben Um Text zu ersetzen, aber jedes Mal eine Bestätigung wünschen, können Sie die verwenden c im stellvertretenden Kommando. :%s/Hello/HI/gc Wie Sie im Video sehen können, fragt mich Vim jedes Mal nach einer Bestätigung, bevor ein Muster ersetzt wird. Es hat auch eine Eingabeaufforderung, die wie die folgende Zeile aussieht: replace with HI (y/n/a/q/l/^E/^Y)? Die Warnoptionen haben folgende Bedeutung: und ja n: nein a: alle q - wird ohne Ersetzen beendet, aber nicht rückgängig gemacht, wenn der Text bereits ersetzt wurde l: ersetzen Sie dies und beenden Sie (denken Sie an 'zuletzt') ^E: Nach oben scrollen (funktioniert nicht bei vim-tiny) ^Y: Nach unten scrollen (funktioniert nicht bei vim-tiny) Ersatz ohne Berücksichtigung der Groß-/Kleinschreibung Wenn Sie Text ersetzen möchten, egal ob in Groß- oder Kleinbuchstaben, sollten Sie in diesem Fall (haha) die verwenden i Flag im Ersatzbefehl.