Liste Zeilen enden mit einem Punkt oder Semikolon
wie kann ich schreiben Sie einen Befehl mithilfe von grep oder egrep, um alle Zeilen in einer Datei, die mit einem Semikolon ";" oder ein Punkt ". " - Zeichen.
InformationsquelleAutor femchi | 2012-10-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit
grep
(undegrep
) ein Dollarzeichen ($
) entspricht dem Ende einer Zeile, und eine carret (^
) entspricht dem Anfang einer Zeile. So, zum Beispiel, wenn Sie wollten, zu entsprechen, Zeilen, die genau das Wort "Fische" und keine anderen Zeichen, die Sie nutzen könnten:Ist es wichtig, einfache Anführungszeichen zu benutzen, wickeln Sie den Suchbegriff so, dass bash nicht alles tun, lustig zu.
Also, um Ihre Frage zu beantworten, müssen Sie das Suchmuster
'[.;]$'
entsprechen entweder eine.
oder;
- Zeichen, gefolgt von einem Zeilenendezeichen. Ich benutze dies als ein Beispiel-test-Datei:Und hier ist das Ergebnis:
Wenn Sie auch zulassen möchten Leerzeichen am Ende der Zeile, dann nutzen Sie dieses Muster:
'[.;][ \t]*$'
die übereinstimmung mit einer beliebigen Anzahl von Leerzeichen oder tab-Zeichen nach der.
oder;
.InformationsquelleAutor Lee Netherton
Dies sollte es tun:
Den
-E
- switch ermöglicht den regular expression Modus. Der Ausdruck passt eine Zeile endet entweder ein Semikolon oder ein Punkt.Hinweis: habe ich noch nicht getestet.
InformationsquelleAutor unwind
Ohne
-E
:InformationsquelleAutor Lev Levitsky
Mit sed :
Mit awk
InformationsquelleAutor Gilles Quenot
drei Möglichkeiten:mit jedem dieser arbeitete für mich.
:
zwei:
drei:
[]
's, eine Periode, die keine spezielle Bedeutung hat, so ist es nicht notwendig, um die backslash-escape.InformationsquelleAutor Vijay