[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bash: "\" am Zeilenende



Le vendredi 03 juin 2011 18:36:15, Jochen Schulz a écrit :
> Klaus Becker:
> > ich will aus einem Text per Skript Ordner anlegen. Die Textdatei sieht
> > schematisch so aus:
> > 
> > text1/ text2 / text3 :\
> > text1/ text2 / text4
> 
> Immer genau drei Spalten? Ist das Leerzeichen hinter "text2" Absicht?
> Sind die Datei-/Verzeichnisnamen immer alphanumerisch? Bestimmt der
> Slash am Ende eines Namens, ob eine Datei oder ein Verzeichnis angelegt
> werden soll, oder wird das durch die Position innerhalb der Zeile
> bestimmt?
> 
> Davon ausgehend, dass die Position relevant ist, das Leerzeichen ein
> Fehler ist und immer nur drei Namen pro Zeile stehen:
> 
> awk ' { print $1, $2, $3 } ' $datei | while read dir1, dir2, file; do
>     mkdir -p "$dir1" "$dir2"
>     touch $file
> done
> 
> J.


Ich gab' mal die ganze Geschichte durch, der Text ist auf französich, aber das 
spielt ja keine Rolle. Das Leerzeichen ist also kein Fehler. Eine Lösung ohne 
awk wäre mir lieber, da ich awk nicht beherrsche, und es sicher ander 
Möglichkeiten gibt.

cat liste.txt
Une_souris_verte
Qui courait dans l'herbe
Je l'attrape par la queue,/  Je la montre à ces messieurs  / Ces messieurs me 
disent :\
Je l'attrape par la queue,/  Je la montre à ces messieurs  /Trempez-la dans 
l'huile,
Je l'attrape par la queue,/  Je la montre à ces messieurs  /Trempez-la dans 
l"eau,
Je l'attrape par la queue,/  Je la montre à ces messieurs  /Ça fera un 
escargot
Un peu chaud; echo Tout chaud.
Pas très chaud"; echo Tout chaud.."
Vraiment pas très chaud'; echo Tout chaud...'
./Froi\d\" $(echo Tout chaud)....\"

4 Zeilen enthalten "/", die Worte am Anfang der nächsten Zeile gehören zu der 
Zeile darüber.


Das angestrebte Resultat ist in 

http://dl.free.fr/rey033voa

Ohne die Leerzeichen und das "\" geht folgende Lösung:

while read line; do 
  mkdir -p `dirname $line`
  touch $line
done <list.txt

Klaus



Reply to: