WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 08.10.2010, 14:31   #1
CM²S
Elite
 
Benutzerbild von CM²S
 
Registriert seit: 27.03.2000
Ort: Wien
Alter: 55
Beiträge: 1.168


CM²S eine Nachricht über Skype™ schicken
Standard blanks am ende des Filenamens entfernen

Hello,

ich hab grad ein dämliches problem gehabt,
jemand hat files mit blank an ende auf einen Ftp geladen.

ls -1 text* zeigt mir files an

test.txt
test2.txt

schön, aber

ls -1 text und tabulator gedrückt

zeigt mir

text.txt\ ein blank im filenamen

ich hab 2 lösungen

for i in `ls -1 text*`; do mv "$i " `echo "$i" |sed 's/*[ ]//g'`; done

oder

ls -1 *.txt\ | while read -r FILE
do
mv -v $FILE\ `echo $FILE | tr -d '\ '`
done

Wie hättet ihr es gemacht ???
Verbesserungen willkommen

ciao
CM²S
____________________________________
\"wann amoi de blaun denen grean an rodn dewich ausroin, daunn siach i schwoaz\"
Gedicht aus \"Eigfleischte Wegetaria und aundare meakwürdikeiten, Andreas Nastl
http://lichtschwarz.tv
CM²S ist offline   Mit Zitat antworten
Alt 08.10.2010, 17:48   #2
CM²S
Elite
 
Benutzerbild von CM²S
 
Registriert seit: 27.03.2000
Ort: Wien
Alter: 55
Beiträge: 1.168


CM²S eine Nachricht über Skype™ schicken
Standard

leider können einige ftp cliensts damit nicht umgehen ... ;-(
____________________________________
\"wann amoi de blaun denen grean an rodn dewich ausroin, daunn siach i schwoaz\"
Gedicht aus \"Eigfleischte Wegetaria und aundare meakwürdikeiten, Andreas Nastl
http://lichtschwarz.tv
CM²S ist offline   Mit Zitat antworten
Alt 08.10.2010, 19:56   #3
FranzK
Inventar
 
Registriert seit: 23.03.2000
Ort: Graz
Alter: 71
Beiträge: 3.567


Standard

Schaut sehr nach einer komplizierten Fremdsprache aus!

In einer Windows-Shell würde ich eine Schleife über alle Dateinamen laufen lassen und jeden Dateinamen durch Trim$(Dateiname) ersetzen versuchen (zumindest sinngemäß).

____________________________________
Ciao
FranzK ist offline   Mit Zitat antworten
Alt 09.10.2010, 10:42   #4
colossus
Master
 
Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611


Standard

Alles grauslich bis falsch, weil man den Output von `ls` in Shellscripts nicht parsed.

Am ehesten wohl noch so:
Code:
for f in ./*;
do
  mv -i "$f" "$(printf "%s" "${f}" \
  | sed -r 's/[[:blank:]]+$//')";
done
Wuerde ich aber auch nicht empfehlen; bei unerwarteten Sonderzeichen kann einfach immer noch zu viel schiefgehen.


Ich hab vor einiger Zeit mal ein Python-Script zusammengeschmissen, um solche (und aehnliche) Problemfaelle schnell loesen zu koennen, das Ergebnis ist sanitize.py.

Demo-Run:
Code:
colo@zealot:/tmp/spacedemo$ touch file "file " "file  " "file           " "someotherfile       "
colo@zealot:/tmp/spacedemo$ echo * | xxd
0000000: 6669 6c65 2066 696c 6520 2066 696c 6520  file file  file 
0000010: 2020 6669 6c65 2020 2020 2020 2020 2020    file          
0000020: 2020 736f 6d65 6f74 6865 7266 696c 6520    someotherfile 
0000030: 2020 2020 2020 0a                              .
colo@zealot:/tmp/spacedemo$ sanitize -v --subst="" ./*
./file  -> ./file.1
./file   -> ./file.1.1
./file            -> ./file.1.1.1
./someotherfile        -> ./someotherfile
4 of 5 files renamed.
colo@zealot:/tmp/spacedemo$ echo * | xxd
0000000: 6669 6c65 2066 696c 652e 3120 6669 6c65  file file.1 file
0000010: 2e31 2e31 2066 696c 652e 312e 312e 3120  .1.1 file.1.1.1 
0000020: 736f 6d65 6f74 6865 7266 696c 650a       someotherfile.
Kuemmert sich auch um etwaige Kollisionen, die durch den Wegfall unerwuenschter Zeichen entstehen. Achtung, das Ding verwurstet auch einige fuer die Shell und fuer diverse Encodings problematische Sonderzeichen und macht automatisch alles Lowercase, das muesstest du, falls unerwuenscht, einfach im Source auskommentieren.
____________________________________
Free Software. Free Society. Better Lives.
colossus ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:32 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag