[Shellscript] Fehler bei if-Anweisung und Leerzeichen im Dateinamen

Mean

New Member
Hallo zusammen,

ich arbeite gerade wieder an einem Shellscript mit dem ich zwei Ordner (add und remove) auslese und zeilenweise über die darin befindlichen .txt-Dateien iteriere.

Zu meinen Problemen:

a) Bei der if-Anweisung bekomme ich aber den Fehler, dass "Command not found: [blubb@bla.de". (dabei ist die if-Anweisung genauso aufgebaut wie ich es in Beispielen bisher gefunden habe bzw. auch schon in meinem ersten Script verwende).

b) Die Dateinamen können Leerzeichen enthalten und bei diesen wird jedes Wort als eigene Datei interpretiert. Ich habe zwar Themen dazu über Google gefunden, allerdings wurde dort bisher nur auf Dateien zugegriffen, deren Namen bekannt war.

Hier das Script:

Code:
#!/bin/sh
ls /files/add/*.txt |while read file;
do
  for line in $(cat $file)
  do
    if ["$line" != ""] 
    then
      echo $line
    fi
  done
done

ls /files/remove/*.txt |while read file;
do
  for line in $(cat $file)
  do
      echo $line    
  done
done

Vielen Dank und viele Grüße,

Dirk
 
Wie kann ich denn die "Steuerzeichen" von Windows aus den Dateien entfernen?

Die Benutzer die die Dateien die mit dem Shellscript bearbeitet werden hochladen arbeiten mit Windows und ich habe jetzt schon eine ganze zeitlang rumprobiert, warum bei der if-Anweisung keine leeren Zeilen entfernt wurden.

Im vi habe ich dann gesehen, dass am Zeilenende immer ein ^M war.

Kann ich die irgendwie pauschal (automatisiert vom Script) entfernen lassen oder brauche ich dafür irgendwelche RegEx?

Danke und Grüße,

Dirk
 
Dankeschön! Damit werde ich es probieren.

Offenbar wird aber was ähnliches schon beim Hochladen via Filezilla (also FTP) durchgeführt, wenn ich mir die Datei so anschaue.

Auf meine VMWare habe ich das bisher über eine Ordnerfreigabe auf Debian geschoben.
 
Back
Top