BlackBoard (http://www.black-board.net/index.php)
- Computerecke (http://www.black-board.net/board.php?boardid=30)
-- Betriebssysteme (http://www.black-board.net/board.php?boardid=11)
--- Linux suche befehl um leerzeichen zu konvertieren (http://www.black-board.net/thread.php?threadid=8754)
Geschrieben von Black Star am 27.11.2002 um 21:58:
suche befehl um leerzeichen zu konvertieren
eigentlich hatte ich vor alle meine html-ebbokz zu packen.
weil das ziemlich viele sind, wollte ich ne schleife drüberlaufen lassen.
dummerweise schaffe ich es nicht, verzeichnisse mit leerzeichen zu isolieren.
hiermit packe ich verzeichnisse zusammen, die keine leerzeichen enthalten:
for i in $(ls -l | grep "drwx" | grep -v " \." | awk '{ print $9 }'); do tar cfz $i.tgz $i; rm -r $i; done
jetzt habe ich aber keinen bock per hand alle leerzeichen umzubennen.
weiss einer da was?
Geschrieben von Zirias am 27.11.2002 um 22:14:
Ersetze den awk-Befehl durch
code: |
1:
|
sed -e "s/\([^ ]\+ \+\)\{7\}//" |
|
Greets, Ziri
Geschrieben von Black Star am 27.11.2002 um 22:40:
wenn ich ls... mache gehts.
aber wenn ich ne for-schleife drumpacke gehts nicht mehr.
die forschleife trennt nach leerzeichen und leider nicht nach zeilenumbrüchen.
ich frickel mal weiter...
Geschrieben von Zirias am 27.11.2002 um 23:46:
quick'n'dirty hack:
code: |
1:
2:
3:
4:
|
for i in $(ls -l | grep "drwx" | grep -v " \." | sed -e 's/\([^ ]\+ \+\)\{7\}//' | sed -e "s/ /%%blank%%/g");
do i=$(echo $i | sed -e "s/%%blank%%/ /g");
echo $i;
done |
|
Greets, Ziri
edit: hehe, wusst ichs doch, dass das quick'n'dirty war
Viel schöner ist:
code: |
1:
|
find -type d -mindepth 1 -maxdepth 1 -exec echo \{\} \; |
|
als Argument für -exec eben die gewünschten Befehle setzen, eventuell in ne subshell
Geschrieben von Black Star am 28.11.2002 um 11:09:
das ist natürlich ne coole idee mit dem quick'n'dirty hack.
muss ich mir merken.
falls es nochmal einer braucht - das hier funzt jetzt (man muss noch "" um die $i's machen, damit er nicht verrückt spielt)
code: |
1:
|
for i in $(find -type d -mindepth 1 -maxdepth 1 -exec echo \{\} \; | sed -e "s/ /%20/g"); do i=$(echo $i | sed -e "s/%20/ /g"); echo "$i"; tar cfz "$i.tgz" "$i"; done |
|
man kann übrigens eine abgewandelte form benutzen, um aus ganzen verzeichnisbäumen die %20 aus dateinamen zu tilgen.
Geschrieben von Mr.Stevens am 28.11.2002 um 13:54:
thanx .... das Dingens funktioniert.
Somit sind auch mal die Homeverzeichnisse aller User verpackt und auf CD verbannt.
Ein Admin dankt.
Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH