Ein kleines Problem unter Bash ist es wenn man (ohne sed oder awk) eine Datei parsen will.. aber nicht mit cut oder grep sondern noch manuell 🙂
dafür gibt es 2 Möglichkeiten die ich euch hier zeigen möchte:
[cc lang=”bash”]
for entry in `cat liste.txt`
do
echo $entry
done
# ODER zeilenweise (beachtet nur \r\n):
while read entry
do
echo $entry
done < “liste.txt”
[/cc]
Wie ihr seht könnt ihr mit for auch so was durchlaufen oder der Trick mit dem < wo man while mit Daten füttern kann – eigentlich verständlich 😀
Es gibt aber einen Entscheidenden Grund nicht for zu nutzen!
for nimmt beim parsen nicht nur Zeilenumbrüche als Trennzeichen sondern auch Tab und Leerzeichen!! Habt ihr also Textdokumente könnt ihr diese nicht zeilenweise ausgeben. Hier hilft nur die 2. Variante mit READ!!
For würde z.B. hier scheitern:
Max Mustermann Sabine Schuster
es würde raus kommen:
Max Mustermann Sabine Schuster
was ja falsch wäre.
Das Problem bei “for” und Trennzeichen lasst sich mit setzen vom IFS lösen…
IFS”
”
for …
Das Problem bei “for” und Trennzeichen lässt sich mit setzen von IFS lösen…
IFS”
”
for …