Ich möchte alle Vorkommen eines Wortes verwenden sedoder perlersetzen, das kein bestimmtes Wort vor sich hat. Zum Beispiel habe ich eine Textdatei, die eine Handlung eines Films enthält, und ich möchte alle Vorkommen des Nachnamens eines Charakters durch seinen Vornamen ersetzen, aber nur, wenn sein Vorname nicht unmittelbar vor seinem …
$echo "foo 65 bar" | sed -n -e 's/.*\([0-9]\+\).*/\1/p' 5 Warum ist die Ausgabe nicht 65? Sollte sed nicht gierig zu dem [0-9]\+Teil passen ? Wie sage ich sed, dass es zu allen passt 65?
In vim können wir das \zsAtom verwenden, um zu sagen "Beginnen Sie das Match wirklich hier": :%s/funnyword\zs.*$/otherword/ Gibt es ein Äquivalent für sed oder sogar perl?
Es scheint zB, cat sed_data.txt | sed 's/\b[0-9]\{3\}\b/NUMBER/g' dass ich Zeichen entkommen muss , um einen regulären Ausdruck zu bilden. In diesem Fall musste ich Zahnspangen entkommen, um mehrmals interpretiert zu werden. Warum? Ich hatte erwartet, dass alles ein Regex-Charakter sein würde, wenn es nicht entkommen würde. Dh das Gegenteil.
Ich möchte, dass bash eine vollständige URL (und nur die URL) aus einer zufälligen kurzen Zeichenfolge analysiert / extrahiert. Beispiele: bob, the address is http://www.google.com oder https://foo.com/category/example.html is up oder Error 123 occurred at http://bit.ly/~1223456677878 oder Stats are up: https://foo1234.net/report.jpg Ich habe es versucht, cat foo_output | egrep -o "https?://[\w'-\.]*\s"aber …
Ich habe eine Textdatei mit folgenden Daten und jede Zeile endet mit |END|. T|somthing|something|END|T|something2|something2|END| Ich tryig ersetzen |END|mit \nneuer Linie mit sed. sed 's/\|END\|/\n/g' test.txt Aber es erzeugt eine falsche Ausgabe wie unten: T | s o m e ... Aber was ich will ist folgendes: T|somthing|something T|something2|something2 Ich habe …
Wie Sie vielleicht bereits wissen, werden viele der Funktionen, die moderne RegEx-Engines unterstützen (Rückverweise, Lookaround-Behauptungen usw.), von der Bash RegEx-Engine nicht unterstützt. Es folgt ein einfaches Bash-Skript, das ich gerade erstellt habe, um zu erklären, was mein Endziel ist: #!/bin/bash # Make sure exactly two arguments are passed. if [ …
Dies ist eine einfache Frage. Ich versuche, alle Dateien im aktuellen Verzeichnis, die mit "axis-2" beginnen und mit ".jar" enden, in ein Zielverzeichnis zu kopieren. Nehmen wir an, es ist ~ / MyDirectory. Mein erster Gedanke war, es zu versuchen cp '^axis2.*jar$' ~/MyDirectory Aber das funktioniert nicht. Ich bin mir …
Ich habe Probleme, meine sed-Syntax zu ändern, um einem numerischen Organisationsschema eine unterschiedliche Anzahl führender Nullen hinzuzufügen. Die Zeichenfolgen, mit denen ich arbeite, sehen wie folgt aus 1.1.1.1,Some Text Here Nutzung der sed-Syntax sed -r ":r;s/\b[0-9]{1,$((1))}\b/0&/g;tr" Ich kann die Antwort auslösen 01.01.01.01,Some Text Here Was ich jedoch suche, ist etwas, …
Angenommen, es ist sehr einfach, wenn ich etwas finden möchte, das Kleinbuchstaben und Zahlen enthält produzieren_text | grep -E '[0-9a-z]' Klammern sind nützlich, um mit einer Reihe von Zeichen übereinzustimmen, aber was ist mit denen, die etwas Besonderes sind? Wenn ich in Klammern ein beliebiges Zeichen außer einem dieser Zeichen …
Ich wollte den Inhalt eines pwd auflisten und nur Dateien anzeigen, die mit dot beginnen. Ich habe es versucht, ls -a | grep ^\.aber ich kann nicht herausfinden, warum die Ausgabe auch die Dateien enthält, die nicht mit Punkt beginnen. Beispielsweise: Pictures .pip .pki .profile projects Public Ich weiß, dass …
ich habe Eingang: NISHA =\455 Ausgabe: NISHA = 455 Ich möchte \aus der Ausgabe entfernen . Ich habe versucht, den Befehl zu verwenden, sed "s/[\]//g" Paber er funktioniert nicht und weist auf einen Fehler hin: character found after backslash is not meaningful
In vim möchte ich einen langen Pfad /a/b/f/g/d/gdurch einen anderen /s/g/w/d/g/rin einer Textdatei ersetzen . Normalerweise benutze ich, \/aber hier gibt es zu viele Schrägstriche. Gibt es einen einfacheren Weg?
Warum tut grep e\\.g\\. <<< "this is an e.g. wow" und grep e\.g\. <<< "this is an e.g. wow" mach das selbe? Wenn ich einen dritten Schrägstrich hinzufüge, hat dies auch das gleiche Ergebnis. ABER sobald ich einen vierten Schrägstrich hinzufüge, funktioniert es nicht mehr. Dies hat mit einer Frage …
Ich mache grep und sed und erhalte 2 Zeilen einer Datei, die mich interessiert. Wie kann ich diese Zeilen in einer einzelnen Zeile erhalten, die mit dem neuen Zeilenzeichen endet? Jetzt bekomme ich: pattern1 pattern2 Ich hätte gern pattern1 pattern2 \n
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.