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

Re: bash: Datei zeilenweise lesen



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


Reply to: