PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sanitize.sh : Namen per Shell säubern



Aqualung
01.09.13, 15:58
So, mir war gerade ein bisschen langweilig, und ich habe ein bisschen gescriptet, im VIM selbstmurmelnd:

Nebenbei habe ich entdeckt, wie man an die Schleifenvariable einer while-Schleife kommt, jaja wer die UNIX - Backticks


`` und tr kennt, ist fein raus.

Also eine kleine Süßigkeit am Sonntag:


#!/bin/bash

ls -1 | while read l; do

# rausfischen von unerwuenschten Zeichen

nn=$(echo "`echo $l| tr " " '_' | tr '(' '_'| tr ')' '_' | tr -d "\012"`")

# konservieren des alten schmutzigen Namens, gerne von GUIS erzeugt

on=$(echo "`echo $l| tr -d \"\012\"`")

# WICHTIG: Entfernen des UNIX-Zeilenumbruchs, ASCII Nr. oktal 12, siehe auch
# man ascii

onn=$(echo "$on" | tr -d "\012")
nnn=$(echo "$nn" | tr -d "\012")

if [ -n "$onn" -a -n "$nnn" ] ; then
echo mv "`pwd`/$onn" "`pwd`/$nnn"
# mv "`pwd`/$onn" "`pwd`/$nnn"
fi


done
Rookies sollten sich die Quotes auf der Zunge zergehen lassen.

Tipps von Wizards gerne genommen.

Zum Scharfschalten den Kommentar rausnehmen.

Wertvolle Synatx-Info gibt mir immer wieder:


grep keineAhnung /etc/init.d/*Sollte auch mit systemd nicht ganz leeeeehr sein.:ugly:

Ich gebe mir selbst einen "tooo many echos used" award.

Aqualung
04.09.13, 13:52
Schade, dass keiner den Schwachsinn der Aussage

"an die Schleifenvariable kommen"

bemängelt hat.

Eine Schleife ist eine Schleife ist eine Schleife (das schreib ich jetzt zur Strafe 333x) :ugly:

OT: Kenner mögen sich zur IF-SCHLEIFE (http://if-schleife.de/)auskotzen und kollegialen Flachsinn beisteuern.

Aqualung
07.09.13, 15:45
- kann auch unerwünscht sein.



#!/bin/bash

ls -1 | while read l; do

# rausfischen von unerwuenschten Zeichen

nn=$(echo "`echo $l| tr " " '_' | tr '(' '_'| tr ')' '_' | tr '-' '_' | tr -d "\012"`")

# konservieren des alten schmutzigen Namens, gerne von GUIS erzeugt

on=$(echo "`echo $l| tr -d \"\012\"`")

# WICHTIG: Entfernen des UNIX-Zeilenumbruchs, ASCII Nr. oktal 12, siehe auch
# man ascii

onn=$(echo "$on" | tr -d "\012")
nnn=$(echo "$nn" | tr -d "\012")

if [ -n "$onn" -a -n "$nnn" -a "$onn" != "$nnn" ] ; then
echo mv "`pwd`/$onn" "`pwd`/$nnn"
#mv "`pwd`/$onn" "`pwd`/$nnn"
fi


done
Wieso ich mir diese Arbeit gemacht habe?

Um preiswerte MP3-Player, die aus der Welt von proprietären Drecks Windows-Clienten kommen und sich äußerst gerne selbst zerlegen, just wenn man die ganze Sammlung gerippt hat, zu bearbeiten.

Aqualung
12.09.13, 17:55
http://www.linuxforen.de/forums/showthread.php?t=158029