Wie lösche ich die erste Zeile in einer Datei?

8

Ich kann nicht nach einer bestimmten Zeichenfolge suchen, da sie alle sehr ähnlich sind, aber ich möchte etwas Einfaches, um die ersten 4 Zeilen in einer Datei auszuhacken.

Sie sind alle auch variable Länge. Ich habe über Perl nachgedacht, und es scheint alles schwieriger als ich dachte, aber ich würde es gerne in Perl, AWK oder einem Shell-Befehl tun, wenn möglich.

Hat jemand eine einfache Möglichkeit, dies zu tun?

    
Soop 16.04.2010, 10:58
quelle

10 Antworten

7

sed ist am einfachsten. Um die erste Zeile einer Datei zu löschen, tun Sie Folgendes:

%Vor%

Oder, um die ersten vier Zeilen zu entfernen, tun Sie:

%Vor%     
Vicky 16.04.2010, 11:01
quelle
13
%Vor%

Überspringt die erste Zeile in filename und gibt sie an stdout aus. Die Option -n+2 bedeutet, die Ausgabe von Zeilen beginnend mit der zweiten Zeile zu beginnen.

Natürlich können Sie 2 durch die Nummer ersetzen, die Sie benötigen (Ihr Titel und der Inhalt der eigentlichen Frage sagen jeweils zuerst und fünf).

    
Mark Rushakoff 16.04.2010 11:02
quelle
5

überspringen Sie die ersten 4 Zeilen

%Vor%     
ghostdog74 16.04.2010 11:07
quelle
4
%Vor%

löscht die ersten vier Zeilen seiner Eingabedatei. (Wenn Sie nur die erste Zeile löschen möchten, können Sie stattdessen '1d' verwenden.)

Das -i -Flag steht für In-Place-Editing, was bedeutet, dass die Eingabedatei auch die Ausgabedatei ist und somit die Änderungen in die Originaldatei zurückgeschrieben werden. Wenn Sie es vorziehen, die Datei intakt zu lassen und den geänderten Inhalt einfach in stdout zu schreiben, lassen Sie einfach -i weg.

Diese und viele andere sed 1-Liner finden Sie in einer praktischen Referenz hier:

Ссылка

    
Amber 16.04.2010 11:01
quelle
2
%Vor%     
Svante 16.04.2010 11:05
quelle
2
%Vor%

entspricht

%Vor%

oder

%Vor%

entspricht

%Vor%

Sie können -i selbe wie in sed verwenden.

    
Hynek -Pichi- Vychodil 16.04.2010 12:28
quelle
1

Eine Lösung, die keine Skriptsprache benötigt (wie awk, sed, perl etc.):

%Vor%

Die Idee besteht darin, die Anzahl der Zeilen in der Datei zu zählen, dann eins zu subtrahieren und das Ergebnis an den Befehl 'tail' zu übergeben.

    
Frerich Raabe 16.04.2010 11:04
quelle
1

Versuchen Sie Folgendes: sed -i 1d file

Eine allgemeine Regel:

Um die n ersten Zeilen zu entfernen: sed '1,nd' file.txt Beispiel: sed '1,4d' file.txt zum Entfernen der ersten 4 Zeilen

    
Soufiane Hassou 16.04.2010 11:00
quelle
1

Verwenden Sie File :: Tie. Das ist gut.

    
Brian Carlton 16.04.2010 14:46
quelle
-1

Durchsuchen Sie die Datei nach dem vierten "\ r \ n" oder "\ n" und Teilstring von diesem Index.

    
ErikTJ 16.04.2010 11:01
quelle

Tags und Links