2016-04-04 5 views
0

Ich habe einige Textdateien von Windows auf redhat Maschine mit Putty kopiert. Wenn ich versuche, die Dateien auszuführen. Ich erhalte einen Fehler, weil ctrl + z in dieser Datei hinzugefügt wurde.Wie ctrl + z in Linux-Datei zu reinigen?

Ich habe diesen Befehl

tr -d '\15\32' </path/gems/spec/rms.spec> /path/gems/spec/rms.spec 

Aber der obige Befehl verwenden ärgerlich, weil ich 1000 .spec Dateien unter verschiedenen Ordnern.

Gibt es eine Möglichkeit, in Linux-Befehl die .spec Dateien in dem Verzeichnis zu identifizieren und reinigen Sie die ctrl + z in der Datei hinzugefügt.

Vielen Dank im Voraus

+2

Dieser Befehl ist auch sehr gefährlich, da es keine Garantie gibt, dass die Datei gelesen wird, bevor sie geplottert wird. –

+0

Ich suche nach dem Dateipfad wie '/ Pfad/Edelsteine ​​/ */*. Spec'. Ich habe versucht, 'sed' Befehl auch zu verwenden, aber kein Glück. – Mangoski

Antwort

0

Wenn Sie bash verwenden, können Sie mit versuchen:

find . -type f -name '*.spec' -print0 | \ 
while IFS= read -r -d '' dot_spec_file; do \ 
cat "$dot_spec_file" | \ 
tr -d '\15\32' | \ 
sponge "$dot_spec_file" \ 
; done 

es Execute auf das übergeordnete Verzeichnis Ihrer .spec Dateien.


Schwamm liest alle seine Eingabe, bevor Sie die Datei schreiben; von seinem Handbuch:

Schwamm liest Standardeingabe und schreibt es in die angegebene Datei. Im Gegensatz zu einer Shell-Redirect, saugt Schwamm alle seine Eingabe vor dem Öffnen der Ausgabedatei. Dies ermöglicht den Aufbau von Pipelines, die von und in die gleiche Datei schreiben.

Verwandte Themen