Frage Wie entferne ich Zeilenumbrüche aus einer Textdatei?


Ich habe die folgenden Daten, und ich muss alles in eine Zeile schreiben.

Ich habe das:

22791

;

14336

;

22821

;

34653

;

21491

;

25522

;

33238

;

Ich brauche das:

22791;14336;22821;34653;21491;25522;33238;

BEARBEITEN

Keine dieser Befehle funktioniert einwandfrei.

Die meisten von ihnen lassen die Daten so:

22791

;14336

;22821

;34653

;21491

;25522

75
2018-06-28 17:46


Ursprung


Antworten:


tr -d '\n' < yourfile.txt

Bearbeiten:

Wenn keiner der hier geposteten Befehle funktioniert, dann haben Sie etwas anderes als einen Zeilenumbruch, der Ihre Felder trennt. Möglicherweise haben Sie DOS / Windows-Zeilenenden in der Datei (obwohl ich erwarten würde, dass die Perl-Lösungen auch in diesem Fall funktionieren)?

Versuchen:

tr -d "\n\r" < yourfile.txt

Wenn das nicht funktioniert, müssen Sie Ihre Datei genauer untersuchen (z. B. in einem Hex-Editor), um herauszufinden, welche Zeichen tatsächlich darin enthalten sind, die Sie entfernen möchten.


158
2018-06-28 17:51



perl -p -i -e 's/\R//g;' filename

Muss den Job machen.


7
2018-06-28 19:00



paste -sd "" file.txt

6
2018-06-28 17:56



tr -d '\n' < file.txt

Oder

awk '{ printf "%s", $0 }' file.txt

Oder

sed ':a;N;$!ba;s/\n//g' file.txt

Diese Seite Hier hat eine Reihe anderer Methoden, um Zeilenumbrüche zu entfernen.

bearbeitet, um Katzenmissbrauch zu entfernen :)


4
2018-06-28 17:51



benutzen

head -n 1 filename | od -c 

um herauszufinden, WAS ist das beleidigende Zeichen. dann benutze

tr -d '\n' <filename

für LF

tr -d '\r\n' <filename

für CRLF


3
2017-12-08 18:58



Sie können die Datei in vim bearbeiten:

$ vim inputfile
:%s/\n//g

3
2017-10-03 05:12



Wenn sich die Daten in Datei.txt befinden, dann:

echo $(<file.txt) | tr -d ' '

Das '$(<file.txt)'liest die Datei und gibt den Inhalt als eine Reihe von Wörtern, die' Echo 'dann mit einem Abstand zwischen ihnen Echo. Der Befehl 'tr' löscht dann alle Leerzeichen:

22791;14336;22821;34653;21491;25522;33238;

1
2018-06-28 18:19



Mit Mann 1 ed:

# cf. http://wiki.bash-hackers.org/doku.php?id=howto:edit-ed 
ed -s file <<< $'1,$j\n,p'  # print to stdout 
ed -s file <<< $'1,$j\nwq'  # in-place edit

1
2018-06-28 18:42



xargs verbraucht auch Zeilenumbrüche (fügt aber eine letzte abschließende Zeile hinzu):

xargs < file.txt | tr -d ' '

1
2018-04-17 06:13