2016-12-14 5 views
0

Ich mag ein (Simple) Programm schreiben, die auf dem Terminal ausgeführt werden können, die wie folgt funktioniert:Bash/Shell-Skript zum Entfernen von Hinter Leerzeichen

Es als Eingabe: ein oder mehr Dateinamen (zum Beispiel MyProgram.java)

Und es entfernt alle nachfolgenden Leerzeichen aus der Textdatei.

Wie das Programm von Terminal verwenden (so etwas wie diese):

/home/username/bin/script.sh MyProgram.java

Ich habe versucht, auf Google, um Hilfe zu suchen, , aber ich konnte nichts finden, was mir half.

Ich benutze Gedit. Ich kenne dort bereits Plugins für Gedit, aber ich versuche, etwas über Shell-Skripte zu lernen, und die nachfolgenden Leerzeichen stören mich.

+1

Willkommen bei SO, auf dieser Seite bitten wir nicht andere Leute, Code für uns zu schreiben, sondern schreiben unseren eigenen Code und fragen andere Community-Mitglieder, wie sie die Probleme lösen können, denen wir begegnet sind. Versuchen Sie also zunächst, es selbst zu implementieren, und wenn Sie auf ein konkretes, spezifisches Problem stoßen - zögern Sie nicht, es hier zu veröffentlichen. Viel Glück! Ich stimme zu, die Frage als zu weit zu schließen. – alfasin

+0

Sie brauchen dafür kein Skript, verwenden Sie einfach 'xargs' als' xargs Inian

+4

Willkommen bei SO. Nur um die Leute davon abzuhalten mehr Bash-Skripte zu schreiben: weißt du ** sed **? Es ist ein mächtiges Kommandozeilenwerkzeug, das für solche Probleme gut geeignet ist: siehe [Wie man nachgestellte Leerzeichen mit sed entfernt] (http://stackoverflow.com/questions/4438306/how-to-remove-trailing-whitespaces-with -sed). – lupz

Antwort

0

Ich würde wahrscheinlich sed dafür verwenden.

#!/bin/bash 

sed -e 's/ *$//' -i.old "[email protected]" 

Die -e bedeutet, dass das nächste Argument das Skript ausgeführt werden soll.

Die s/ *$// ist das Skript. Das bedeutet, dass Sie für jede Zeile alle Leerzeichen am Ende der Zeile (/ *$/) umsonst ersetzen müssen (//).

Die -i.old bedeutet, die Dateien an Ort und Stelle zu bearbeiten, und verschieben Sie die Originale in eine Datei mit dem Namen <same_name_as_before>.old.

Die "[email protected]" fragt die Parameter dieses Shell-Skripts ab und übergibt sie unverändert an den Prozess sed.

Verwandte Themen