zeilenweises auslesen in bash

Post Reply
Message
Author
hammerP

zeilenweises auslesen in bash

#1 Post by hammerP »

Hi
wie kann ich mit einem script eine datei zeilenweise auslesen und damit auch zeilenweise bearbeiten ?
ich kann leider kein c deshalb wäre es cool wenn es auch so ginge.

rattengift

Re: zeilenweises auslesen in bash

#2 Post by rattengift »

für einfache files in spaltenformat zb so:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
FILE=/etc/fstab
while read PARTITION MOUNTPOINT FSTYPE OPTIONS; do
echo $PARTITION $MOUNTPOINT $FSTYPE $OPTIONS
done < $FILE
</font><hr></pre></blockquote>
je nach bedarf/komplexität kann awk usw hilfreich sein. wenn das file ein beliebiges format hat (keine spalten), müsste man mehr über das problem wissen.

> ich kann leider kein c deshalb wäre es cool wenn es auch so ginge.

für so eine aufgabe ist ein script wohl besser geeignet. wenn nicht bash dann perl, aber C lieber nicht.

hammerP

Re: zeilenweises auslesen in bash

#3 Post by hammerP »

ich habe eine ganz normale textdatei ohne irgendein format. und wenn die zeile eine bestimmte soll sie in eine andere (vorher leere) textdatei kopiert werden.
zB:
datei vorher:

dasköhdsadihe
blabla iefhioehf
ikjflfö
blabla kdfkheio
blabla jkljeflke

nun sollen alle zeilen die mit blabla anfangen kopiert werden, sodass:

blabla iefhioehf
blabla kdfkheio
blabla jkljeflke

vielleicht hast du ne idee

rossi

Re: zeilenweises auslesen in bash

#4 Post by rossi »

grep ist Dein Freund. Hab nun auch wenig Ahnung von grep, aber vielleicht korrigiert mich ein Routinier ja:

grep ^blabla DATEI >> NEUE_DATEI

das "^" bewirkt, das die Zeile, die blabla anfangen muß. Alle Dateien, die so anfangen, werden dann in die Datei NEUE_DATEI umgeleitet und dort angehängt.
Wenn Groß/Kleinschreibung ignoriert werden soll:

grep -i ^blabla DATEI >> NEUE_DATEI

hammerP

Re: zeilenweises auslesen in bash

#5 Post by hammerP »

stimmt grep ist klasse.
man kann sogar noch viel mehr damit machen.
danke erstmal

Post Reply