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, 10144 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
XML
gelöst XML Datei per Skript ändern (12)

Frage von chrisen zum Thema XML ...

Batch & Shell
gelöst Batch-Skript: Messdaten in Textdatei finden und in eine neue Datei schreiben (5)

Frage von habmalnefrage zum Thema Batch & Shell ...

Linux
E-Mail zu Datei (3)

Frage von schneerunzel zum Thema Linux ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (11)

Frage von DerFurrer zum Thema Windows Installation ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...

Multimedia & Zubehör
gelöst Iphone 6 prob (8)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Router & Routing
Cisco887VAW -VPN NAT-Freigabe (8)

Frage von Serial90 zum Thema Router & Routing ...