Auslesen von Zeilen in Datei (Script)?

Eun

Neuer User
Mitglied seit
17 Aug 2006
Beiträge
47
Punkte für Reaktionen
0
Punkte
0
Hallo Forum,
wisst ihr wie man dateien auslesen kann? Ich habe es bissher nur mit cat <filename> geschaft. Aber ich würde die Dateien gerne Zeilenweise auslesen, habt ihr eine möglichkeit parat die auch auf der FB läuft?

MFG

Eun
 
Zuletzt bearbeitet:
Was genau heißt "auslesen"? Auch cat liest ja einen Zeile nach der anderen.

"read" wäre eine Möglichkeit, aber es kommt darauf an, was Du vor hast.
 
Na sagen wir mal ich hab eine Datei namens "test.txt" mit dem Inhalt:
123
231
321

und nun möchte ich sagen wir nur die 1te zeihle auslesen, wie koennte man das anstellen?
 
Das problem ist das nicht alle begehle auf der fb funktionieren und head gibt mir eben nur den header, ich möchte aber eine beliebige zeile einzeln auslesen
und head -2 test.txt liefert mir beide....
 
Auf meiner FritzBox gibts gar kein "head"...
Aber wenn Du ein "head" drauf hast, dann gibts doch bestimmt auch ein "tail".
Wie wärs dann mit
head -2 test.txt |tail -1
 
Ja danke das hab ich gebraucht:

head -1 test.txt | tail -1 ergibt 123
head -2 test.txt | tail -1 ergibt 231
head -3 test.txt | tail -1 ergibt 321

danke
 
Noch schöner ist vielleicht:
sed -n -e '1p' test.txt
sed -n -e '2p' test.txt
sed -n -e '3p' test.txt
 
Ja das ist übersichtilicher danke.

Edit: und wie könnte man das jetzt in ner Schleife ausgeben?
habs mit

#!/bin/sh
# einlesen
b = 1
echo > newfile.txt
while [ sed -n -e $bp test.txt != '' ]
do
b = b + 1
echo "sed -n -e $bp test.txt" >> newfile.txt
sleep 2
done
probiert fürht jedoch zu einer leeren datei.
 
Zuletzt bearbeitet:
@Eun
Bitte tue allen, ganz besonders Dir selbst, einen Gefallen und beschäftige Dich mal mit den Grundlagen der Shell Programmierung.

Auf diese Weise stolperst Du nur von einer Frage zur nächsten und weißt vermutlich nachher noch nicht einmal, warum das funktioniert, was man Dir geantwortet hat.

Falls es Dich aber nur an einem einem fertigen Skript interessiert bist und nicht an den Hintergründen, dann schreib doch gleich "Suche jemanden, der mir ein Skript erstellt, das XY tut."
 
Du hast recht wenn ich ein fertiges scirpt haben wollte dan haette ich das getan. Es gibt auch tolle unix grundlagen nur leider gibt es die passenden Befhele oder anweisungen nicht auf der Busybox. Da ja die bussybox programme auch ganz anders compeliert werden als andere software wie fuer debian. Und ich kann dich beruhigen ich weis schon was da passiert, baue selber programme.

zum Thema: ich habe das problem anders gelöst
 
Welche Befehle fehlen denn auf der Box, bzw. wie hättest Du es gelöst, wenn es auf einem normalen Linux System laufen würde?

Und es wäre nett, wenn Du auch schreiben würdest, wie Du das Problem gelöst hast, damit andere auch etwas davon haben.
 
Ich hätte verwendet:
Code:
while read zeile; do echo "zeile: " $zeile; done < file.txt

nur leider geht das nicht auf der FB.

Ich brauchte die Funktion um jeden einzelnen Eintrag in eine andere Datei zu speichern. Nun habe ich einfach immer die Erste ausgelesen und gespeichert und das script eben mehrmals ausgeführt.
 
Das wundert mich, weil genau das funktioniert:
Code:
$ while read zeile; do echo "zeile: " $zeile; done < /etc/motd
zeile:  __ __ __ __
zeile:  | (_ __ |/| _ _| _) /__
zeile:  |__/__) | |(_)(_|__ /__ __)
zeile:
zeile:  The fun has just begun...
awk wäre eine weitere Möglichkeit:
Code:
$ awk '{print "zeile: ", $0;}' < /etc/motd
zeile:   __  __                 __   __
zeile:  |  \(_  __ |\/| _  _|    _) /__
zeile:  |__/__)    |  |(_)(_|__ /__ \__)
zeile:
zeile:     The fun has just begun...
Es wundert mich etwas, daß Du auf die Idee mit read gekommen bist, aber nicht gemerkt hast, daß das Skript mit sed voll von Fehlern war. Das Skript führt nicht nur zu einer leeren Datei, sondern auch zu Fehlermeldungen. Mindestens drei Zeilen sind syntaktisch falsch, dazu noch Logik-Fehler. Außerdem ist die Lösung mit sed nicht effizient, wenn man alle Zeilen auslesen will.
 
ich denke da ich das mit der rudi shell ausgeführt hab das ich auff den fehler nich gestoßen bin.
 
Kostenlos!

Statistik des Forums

Themen
248,920
Beiträge
2,305,114
Mitglieder
378,645
Neuestes Mitglied
nikitarajusa