Matthias Meyer <matthias.meyer@gmx.li> (Do 29 Jan 2009 00:29:57 CET): > Hallo, > > Ich möchte in der bash eine Datei zeilenweise einlesen. > Diese kann aber "\" enthalten und auch führende Leerzeichen. > read line < file liest die "\" nicht mit > read -r line < file liest die führenden Leerzeichen nicht mit. Das kann ich nicht bestätigen... ABER Vorsicht: $ echo ' x\ny' | { read -r; echo "<$REPLY>"; } < x\ny> $ echo ' x\ny' | { read -r ll; echo "<$ll>"; } <x\ny> $ echo ' x\ny' | { read -r REPLY; echo "<$REPLY>"; } <x\ny> Nur das erste Beispiel hat den gewünschten Effekt. Für die zwei letzten Beispiel muß es heißen: $ echo ' x\ny' | { IFS= read -r ll; echo "<$ll>"; } $ echo ' x\ny' | { IFS= read -r REPLY; echo "<$REPLY>"; } damit es funktioniert. Wenn man "bash -c 'help read'" benutzt, steht es auch beschrieben, ist mir aber auch erst beim zweiten Lesen aufgefallen. Best regards from Atlanta, GA currently Viele Grüße aus z.Z. Atlanta Heiko -- SCHLITTERMANN.de ---------------------------- internet & unix support - Heiko Schlittermann HS12-RIPE ----------------------------------------- gnupg encrypted messages are welcome - key ID: 48D0359B --------------- gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B -
Attachment:
signature.asc
Description: Digital signature