Shell: einfache Möglichkeit, alle Zeilen vor der ersten Leerzeile zu erhalten

8

Was ist der beste Shell-Befehl, um die Zeilen einer Datei auszugeben, bis Sie auf die erste leere Zeile stoßen? Zum Beispiel:

%Vor%

awk? etwas anderes?

    
Peter 21.10.2009, 20:26
quelle

8 Antworten

9
%Vor%     
themis 21.10.2009, 20:33
quelle
7

Mehr awk :

%Vor%

Mehr sed :

%Vor%

Wie wäre es direkt in der Shell?

%Vor%

(Oder printf '%s\n' anstelle von echo , wenn Ihre Shell fehlerhaft ist und immer Escapes behandelt.)

    
ephemient 21.10.2009 20:58
quelle
4
%Vor%     
ghostdog74 22.10.2009 01:57
quelle
3

Mit sed:

%Vor%

Edit: sed ist viel, viel, viel schneller. Siehe die Antwort von ephemient für die schnellste Version.

Um dies in awk zu tun, könnten Sie verwenden:

%Vor%

Beachten Sie, dass ich dies absichtlich geschrieben habe, um die Verwendung regulärer Ausdrücke zu vermeiden. Ich weiß nicht, wie die internen Optimierungen von awk aussehen, aber ich vermute, dass der direkte String-Vergleich schneller wäre.

    
Cascabel 21.10.2009 20:31
quelle
2

Awk Lösung

%Vor%     
Vereb 21.10.2009 20:35
quelle
1

Hier ist eine Lösung mit Perl:

%Vor%     
chardin 21.10.2009 20:31
quelle
1

Ein paar Perl-Einzeiler

%Vor%     
jfs 21.10.2009 20:57
quelle
1

Eine andere Perl-Lösung:

%Vor%     
glenn jackman 22.10.2009 13:20
quelle

Tags und Links