Entfernen der letzten leeren Zeile

7

Am Ende meiner .csv-Datei befindet sich ein Para-Break. Ich habe versucht, die leere Zeile am Ende der Datei mit dem folgenden Befehl zu entfernen.

%Vor%

Aber es funktioniert nicht und eine Leerzeile ist immer noch da. Ich kann die letzte Zeile mit dem folgenden Befehl entfernen.

%Vor%

Aber ist es möglich zu überprüfen, ob die letzte Zeile wirklich leer ist, bevor Sie sie entfernen?

Aktualisierung:

Ich verwende den folgenden Befehl, um zu überprüfen, ob jede Zeile mit einer Zahl beginnt.

%Vor%

Dies prüft nur die erste Zeile und nicht die restlichen Zeilen. Wie überprüfe ich alle Zeilen in der Datei? Dies könnte mein Problem lösen.

    
shantanuo 15.12.2010, 10:16
quelle

4 Antworten

18

Try ${/^$/d;} Dies entspricht nur einer leeren Zeile, wenn es die letzte Zeile der Datei ist.

Update: für Ihre zweite Frage, entfernen Sie einfach die 1 vor den s, d. h .: sed -i 's/^[^0-9]*//' combined.csv

    
Bart Sas 15.12.2010, 10:28
quelle
5

Irgendwann irgendwo gefunden und den Schnipsel gerettet. Frag mich nicht wie es funktioniert:

%Vor%     
elmimmo 09.01.2011 22:27
quelle
0
  

Try $ {/ ^ $ / d;} Dies entspricht nur einer leeren Zeile, wenn es die letzte Zeile der Datei ist.

Ich habe es mit sed (GNU sed) 4.2.2 versucht und habe alle Leerzeilen nicht nur die leere Zeile gelöscht, wenn es die letzte Zeile der Datei ist.

Ich habe den folgenden Befehl gefunden, der für mich funktioniert, der den Job erledigt.

%Vor%

Dieser Befehl stammt aus einer Sammlung nützlicher SED-One-Liner: Ссылка

    
Kaot 17.02.2016 10:20
quelle
0

Um Leerzeilen zu entfernen, können Sie grep . oder sed '/^$/d'

verwenden

Es wird eine leere Zeile in der Datei entfernen. Ich hoffe, Sie haben keine leeren Zeilen in der Mitte, aber das wird in Ihrem Fall funktionieren.

cat combined.csv | grep .

oder

cat combined.csv | sed '/^$/d'

    
Alex Raj Kaliamoorthy 17.02.2018 10:36
quelle

Tags und Links