oiooiooioiioooiioiioiooo
Goto Top

Linux Bash in for oder while Befehle der Reihe nach abarbeiten lassen

Moin,

Ich sitze hier wieder mal vor einem Problem.

Bis jetzt bin ich eigentlich davon ausgegangen, dass for oder while die eingetragene Befehle der Reihe nach abarbeiten.

Nun stelle ich fest, dass es doch nicht so ist.

Was mache ich falsch, oder was mache ich nicht richtig?

#!/bin/bash
for line in `cat /tmp/dateiliste.txt`; do
        ZEILE1=$(cat ${line[@]} | head -n1)
        ZEILE2=$(cat ${line[@]} | tail -n1)
echo $ZEILE1\t$ZEILE2
done

Bei mir wird zuerst 1000 Fach Zeile1 ausgeführt …

        ZEILE1=$(cat ${line[@]} | head -n1)

und erst dann 1000 fach Zeile2.

        ZEILE2=$(cat ${line[@]} | tail -n1)

Viele Grüße

Ich

Content-Key: 1426634570

Url: https://administrator.de/contentid/1426634570

Printed on: April 25, 2024 at 09:04 o'clock

Member: tagol01
tagol01 Oct 25, 2021 at 05:29:50 (UTC)
Goto Top
Hallo

Ich vermute mal auf leer zeichen, oder wie sieht eine zeile bei dir aus?

Versuch mal folgende dafür zu setzen:

set -f
IFS='  
'  
Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Oct 25, 2021 at 06:47:52 (UTC)
Goto Top
Mit dem oben geschriebenem Skript konnte ich das Problem reproduzieren.

das cat /tmp/dateiliste.txt könne man auch mit ls -1 /home/benutzer/Dukumente/*.txt ersetzen. In diesem Ordner sind Textdateien (ASCII text, with CRLF line terminators), welche ich mal gesammelt habe, und möchte jetzt in eine Datei sortiert, eine Datei pro Zeile, mit nur Daten welche ich benötige, packen.

bildschirmfoto vom 2021-10-25 08-28-53

> set -f
> IFS='  
> '  
> 

Ich hoffe ich habe es richtig umgesetzt:

bildschirmfoto vom 2021-10-25 08-45-36

Es hat leider nichts gebracht.
Member: OIOOIOOIOIIOOOIIOIIOIOOO
Solution OIOOIOOIOIIOOOIIOIIOIOOO Oct 25, 2021 updated at 07:52:47 (UTC)
Goto Top
ok .. mein Fehler war …

und somit ist die Lösung total einfach 🙈

echo -e "$ZEILE1\t$ZEILE2"