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: