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, 10123 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ä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 ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...