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, 10152 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
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 ...

XML
gelöst XML Datei per Skript ändern (12)

Frage von chrisen zum Thema XML ...

Heiß diskutierte Inhalte
Windows 7
gelöst BOOTMGR is missing (auch nach bootrec -RebuildBcd) (20)

Frage von Mipronimo zum Thema Windows 7 ...

Router & Routing
Tipps für Router (ca. 100 clients, VPN) (20)

Frage von oel-auge zum Thema Router & Routing ...

Windows Userverwaltung
Windows Freigabe: Zugriff auf alle Ordner trotz Sicherheitseinstellungen (18)

Frage von Pandreas zum Thema Windows Userverwaltung ...

Exchange Server
gelöst MS Exchange 2016 - Basicconfig Fragen (15)

Frage von maddig zum Thema Exchange Server ...