Ich möchte alle Leerzeichen aus einer bestimmten Textdatei entfernen. Gibt es dafür einen Shell-Befehl? Oder wie man es sed
für diesen Zweck benutzt.
Ich möchte so etwas wie unten:
$ cat hello.txt | sed ....
Ich habe cat hello.txt | sed 's/ //g'
Folgendes versucht: Aber es werden nur Leerzeichen entfernt, keine Tabulatoren.
Antworten:
Um alle Leerzeichen einschließlich Zeilenumbrüche zu löschen, können Sie Folgendes versuchen:
cat file.txt | tr -d " \t\n\r"
Sie können auch die durch tr definierten Zeichenklassen verwenden (Credits für htompkins Kommentar):
cat file.txt | tr -d "[:space:]"
Zum Beispiel, um nur horizontale Leerzeichen zu löschen:
cat file.txt | tr -d "[:blank:]"
quelle
tr
. Beispiele: So löschen Sie alle Leerzeichen:cat file.txt | tr -d "[:space:]"
So löschen Sie alle horizontalen Leerzeichen:cat file.txt | tr -d "[:blank:]"
Meiner Meinung nach viel einfacher:
sed -r 's/\s+//g' filename
quelle
Ich denke, Sie können sed verwenden, um den Raum auszulöschen, ohne dabei Informationen zu verlieren, wie wenn Sie zu einer anderen Zeile wechseln.
cat hello.txt | sed '/^$/d;s/[[:blank:]]//g'
quelle
tr -d " " < infile.txt > outfile.txt
Versuche dies:
sed -e 's/[\t ]//g;/^$/d'
( hier gefunden )
Der erste Teil entfernt alle Tabulatoren (
\t
) und Leerzeichen und der zweite Teil entfernt alle leeren Zeilenquelle
^$
Entspricht einer leeren Zeile, da nach "Zeilenanfang" (^) und unmittelbar danach nach "Zeilenende" ($) gesucht wird.Wenn Sie ALLE Leerzeichen entfernen möchten , auch Zeilenumbrüche:
perl -pe 's/\s+//g' file
quelle
Einfachster Weg für mich ->
echo "Hello my name is Donald" | sed s/\ //g
quelle
Dies ist wahrscheinlich der einfachste Weg, dies zu tun:
sed -r 's/\s+//g' filename > output mv ouput filename
quelle
Versuche dies:
tr -d " \t" <filename
Weitere Informationen finden Sie in der Manpage zu tr (1).
quelle
Alter, einfach python test.py in deinem Terminal.
f = open('/home/hduser/Desktop/data.csv' , 'r') x = f.read().split() f.close() y = ' '.join(x) f = open('/home/hduser/Desktop/data.csv','w') f.write(y) f.close()
quelle
f.read().strip("\t\n\r ")
effizienter?Diese Antwort ähnelt der anderen, da sich einige Leute beschwert haben, dass die Ausgabe an STDOUT geht. Ich werde nur vorschlagen, sie in die Originaldatei umzuleiten und zu überschreiben. Normalerweise würde ich das nie vorschlagen, aber manchmal schnell und schmutzig.
cat file.txt | tr -d " \t\n\r" > file.txt
quelle
hmm ... scheint etwas in der Größenordnung von
sed -e "s/[ \t\n\r\v]//g" < hello.txt
sollte im richtigen Stadion sein (scheint auf jeden Fall unter Cygwin zu funktionieren).quelle