Wie benutze ich Regex Match Zeilenende in Windows?

8

Ich habe eine .txt-Datei in Windows erstellt und sollte jetzt in Linux bearbeitet werden. Ich möchte das Ende einer Zeile mit grep abgleichen, sagen wir, der Inhalt der Zeile, die ich finden werde, ist "foo bar" in der Datei bar . Dann gebe ich den Befehl grep 'r$' bar , keine Ausgabe ergab.

Gegeben in Windows eine neue Zeile besteht aus '\ r \ n', anders als Linux / Unix eine einzige '\ n', ich denke, es muss etwas Subtiles damit verbunden sein. Dann konvertiere ich die Datei mit dos2unix und voila, es funktioniert.

Meine Frage ist, wie kann ich den Inhalt anpassen, ohne die ursprüngliche Datei zu konvertieren?

Jeder Rat wird sehr geschätzt.

Vielen Dank und beste Grüße.

    
Summer_More_More_Tea 09.06.2011, 07:10
quelle

3 Antworten

7

Wenn Ihr grep -P (perl-regexp) unterstützt, dann stimmen Sie mit einer CRLF überein:

%Vor%

oder:

grep Strg + V Strg + M Datei

( Strg + V Strg + M erzeugt ^M )

    
dogbane 09.06.2011, 07:20
quelle
6

Verwenden Sie ein Muster mit übereinstimmenden Zeilenenden: r\r?\n

    
Aaron Digulla 09.06.2011 07:12
quelle
-1

probiere es awk

aus %Vor%

oder

%Vor%     
mug896 08.02.2014 06:34
quelle

Tags und Links