Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Leerzeichen in Datei- und Verzeichnisnamen unter unix shell-skript

Frage Sonstige Systeme Solaris

Mitglied: ashi-75

ashi-75 (Level 1) - Jetzt verbinden

06.12.2006, aktualisiert 20.12.2006, 10167 Aufrufe, 4 Kommentare

hallo,
ich habe höchst wahrscheinlich ein einfaches Problem.Ich bin leider Entwickler, und muss mich um meine Dateien kümmern.
Folgendes Problem nun:
Aus platzgründen möchte ich alle Text und sostige Dateien komprimieren.Ich hole mir per find alle Dateien incl. Pfade und möchte diese nun per for Schleife komprimieren und schließend löschen. Hier ist der Code:

echo "hallo geben Sie den Pfad an, indem die TXT-Dateien zum komprimieren liegen"
read answer


find $answer -name "*.TXT" -print -o -name "*.txt" -o -name "*.DAT" -o -name "*.dat" -print > pfad ;

for name in 'cat pfad'
do
'komprimiere und lösche'
done:




Das Problem ist nun, dass die For-Schleife die Leerzeichen als Trennmarke nimmt und somit das Ganze nicht funktioniert.
Hat jemand eine Idee?
Bedanke mich schon mal.
Grüsse
Mitglied: BartSimpson
15.12.2006 um 10:55 Uhr
haste du es schon mal versucht den Leerzeichen ein \ voran zu stellen?
Bitte warten ..
Mitglied: cybermarc
20.12.2006 um 14:30 Uhr
Dein problem ist der normale print. Nimm den printf, damit hat eine bessere Ausgabe, also z.B.
find $answer -type f -name "*.[Tt][xX][tT]" -printf "%P"

printf kann noch mehr infos ausgeben, mittels regexp kannst auch gleich beim Suffix nach unterschiedlichen Schreibweisen schauen, z.B: .TXT, .txt, .Txt

Gruß, Marcus
Bitte warten ..
Mitglied: ashi-75
20.12.2006 um 15:12 Uhr
Hallo,
ich habe es probiert, aber leider erfolglos. Die print-Anweisungen können auch weggelassen werden. Das Problem bleibt jedoch bestehen, wenn ich via For-Schleife über diese Liste, die ich vorher per find-Befehl erstellt habe, iteriere. Dabei wird jedes Leerzeichen als mögliche Trennzeichen gelesen.
Vielleicht eine Idee?
Grüsse
Bitte warten ..
Mitglied: cybermarc
20.12.2006 um 20:10 Uhr
Ahh, ok. Ich habe das bei meinem Backup-Script so gelöst:

cat $LISTFILE | while read line
do
F_NAME=`printf "$line" | cut -d, -f2 | sed -e 's/"//g'`
            1. mach was mit $F_NAME
            done


            wobei mein Listfile den Aufbau

            Dateigroesse in MB, "Dateiname mit Pfad und blanks"
            Dateigroesse in MB, "Naechster dateiname mit Pfad und blanks"

            hatte. Da Du nur den Dateinamen ohne quotes im Listfile hast, würde der
            Ausdruck zum auslesen einfach nur
            F_NAME=`printf "$line\n"`
            bzw.
            printf "Mach was mit Datei $line\n"

            lauten.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Leerzeichen im Pfad (4)

Frage von Jallio zum Thema Batch & Shell ...

Batch & Shell
gelöst Schreiben eines Strings mit Leerzeichen in eine Datei (6)

Frage von c20082005 zum Thema Batch & Shell ...

VB for Applications
gelöst VB Skript Excel Datei (3)

Frage von Frager zum Thema VB for Applications ...

Batch & Shell
14 Tage alte Dateien automatisch löschen - Shell (1)

Frage von traller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (19)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (18)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows 10
Programm Installation bei Win 10 Fehlerhaft (13)

Frage von Keineahnungvonnix zum Thema Windows 10 ...