Dateien Zeilenweise auslesen

Post Reply
Message
Author
Rossi

Dateien Zeilenweise auslesen

#1 Post by Rossi »

...und mein (vorerst) letzter

Kann ich eine Datei Zeilenweise auslesen/berabeiten ?

Bisher hab ich Dateien in eine Variable gelesen ( LISTE=`cut /pfad/datei`) und mit 'ner "for" schleife abgearbeitet (for ZEILE in ${LISTE}; do ). Nun hab ich aber Dateien mit 5000 und mehr Zeilen, die ich ungern in eine Variable packen würde und lieber "direkt" abarbeiten würde, also ohne zwischenspeichern der gesamten Datei. Möglich mit "Boardmitteln", also wieder ohne perl, etc ?

Andreas B.

Re: Dateien Zeilenweise auslesen

#2 Post by Andreas B. »

forschleife $i++ {

cat -n [file] | grep "$i "
}

gibt die Zeile mit der Nummer $i aus

cat -n [file] nummeriert die zeilen der ausgegebenen datei
und grep filtert dann anhand z.B. "10 " raus

musst aber noch ein bissel dran feilen

abto
Posts: 23
Joined: 30. Mar 2002 1:41

Re: Dateien Zeilenweise auslesen

#3 Post by abto »

Die Geschichte mit dem grep funktioniert so leider nicht, da auch Zeilen ausgegeben werden, die die Zeilennummer im Text enthalten.
Alternativ schlage ich folgendes vor:

#! /bin/sh

LINES=`wc -l $1 | tr -s " " | cut -f2 -d' '`

echo "Die Datei $1 hat $LINES Zeilen"

I=1

while [ "$[$I<=$LINES]" = "1" ]
do
ZEILE=`head -n $I $1 | tail -n 1`

# hier wird die Variable mit der Zeile weiterbearbeitet
echo "$I: $ZEILE"
###

I=$[$I+1]
done

bash

Re: Dateien Zeilenweise auslesen

#4 Post by bash »

#/bin/sh

while read ZEILE; do
## irgend etwas damit tun ...
echo "-> $ZEILE"
done </etc/passwd

Rossi

Re: Dateien Zeilenweise auslesen

#5 Post by Rossi »

Hat super geklappt, die while Schleife. Danke !

Post Reply