Ich habe eine Zeile mit 3 langen Zahlen, die durch Komma getrennt sind. Was ich tun möchte, ist, die Zahl in der Mitte zu löschen und nur die erste Zahl und die letzte Zahl durch ein Komma getrennt zu lassen.
Zur Zeit:
123456789123,723456789123456,834567885544334
123456789125,723456789123457,834567885544333
123456789126,723456789123458,834567885544337
Erwünschtes Ergebnis:
123456789123,834567885544334
123456789125,834567885544333
123456789126,834567885544337
Ich habe es versucht, aber es hat mit diesen regulären Ausdrücken nicht funktioniert:
- regulärer Ausdruck, um Zeichenfolge zu finden:
%[0-9]+,[0-9]+,[0-9]+
- regulärer Ausdruck zum Ersetzen der Zeichenfolge:
^1,^2
Welcher reguläre Ausdruck macht eigentlich das, was ich erreichen möchte?
Hinweis - Ich verwende derzeit eine Anwendung namens Ultraedit, die unter Windows 7 ausgeführt wird. Wenn Sie eine bessere Textbearbeitungsanwendung für Windows empfehlen, die mein Problem lösen kann, lassen Sie es mich bitte wissen.
Antworten:
Sie können einfach die mittlere Nummer jeder Zeile durch nichts ersetzen.
Im Editor
Das heißt, in Ihrem Editor können Sie den regulären Ausdruck suchen und ersetzen
(die nur mit Kommas auf beiden Seiten übereinstimmt, was für Ihre Eingabe nur die mittlere Zahl ist) mit einem einzelnen Komma:
Ich gehe davon aus, dass Ultraedit reguläres Suchen und Ersetzen unterstützt. Wenn nicht, versuchen Sie es mit Notepad ++, was ich weiß.
Von der Kommandozeile
Da Sie Ihr Frage- Shell-Skript mit Tags versehen haben, erfahren Sie hier, wie Sie dies über die Befehlszeile tun.
sed
Verwenden Sie
sed
einen Standard-Linux-Befehl, der auch für Windows als Teil von Cygwin oder GnuWin32 verfügbar ist:Power Shell
Jens wies darauf hin, dass dies auch in Windows PowerShell möglich ist. siehe diese Erklärung .
quelle
Die Regex-Syntax variiert von Anwendung zu Anwendung. Ich bin mit Ultredit nicht vertraut und werde eine allgemeine Antwort geben
In Ihrer Regex fehlen Klammern
([0-9] +), [0-9] +, ([0-9] +)
quelle
Um Text zu ersetzen, muss der richtige Unterausdruck in Klammern angegeben werden.
In UltraEdit müssen Sie nach dem folgenden regulären Ausdruck suchen:
quelle
Awk Äquivalent!
echo "$Variable" | awk 'FS="," { print $1","$3 } '
quelle