Manuelles Wiederholen einer Zeile einer Datei | bash

8

Ich könnte das in jeder anderen Sprache machen, aber mit Bash habe ich weit und weit geschaut und konnte die Antwort nicht finden.

Ich muss $line in einem Skript manuell erhöhen. Beispiel:

%Vor%

Wenn Sie bemerken, dass foo_loop jedes Mal, wenn $line iteriert, gleich bleibt. Ich muss $line dort iterieren und sicherstellen, dass die ursprüngliche for-Schleife nur die Anzahl der Zeilen in der Datei ausführt.

Ich habe darüber nachgedacht, die Anzahl der Zeilen in der Datei mit einer anderen Schleife zu ermitteln und die Zeilenvariable innerhalb der inneren Schleife von foo() zu wiederholen.

Irgendwelche Ideen?

BEARBEITEN:

Entschuldige, dass du so vage bist.

Hier gehen wir:

Ich versuche, einen Teil meines Codes mehrfach auszuführen (parallele Ausführung)

%Vor%

Dieser Code funktioniert gut, weil foo nur den Wert der Zeile einnimmt; aber wenn ich das machen wollte:

%Vor%

$line ist während der while-Schleife gleich. Ich brauche es mit der while -Schleife zu ändern, und fahre fort, wenn es wieder in for geht. Beispiel:

%Vor%

Wenn der Inhalt der Datei

war %Vor%

Die Ausgabe des Beispielprogramms wäre (wenn die maximal zulässige Anzahl 3 war)

%Vor%

Wo ich es haben möchte

%Vor%

Ich hoffe, das ist besser. Ich gebe mein Bestes, um mein Problem zu erklären.

    
Greg 21.09.2009, 19:54
quelle

3 Antworten

16

Anstatt eine for-Schleife zu verwenden, um die Datei zu lesen, sollten Sie die Datei vielleicht so lesen.

%Vor%     
Buggabill 21.09.2009 20:16
quelle
6

Lange Rede kurzer Sinn, while read line; do _____ ; done

Stellen Sie dann sicher, dass Sie um "$ line" doppelte Anführungszeichen haben, damit ein Parameter nicht durch Leerzeichen begrenzt wird.

Beispiel:

%Vor%

Zweites Beispiel     # Fügen Sie .gz zu jeder Datei im aktuellen Verzeichnis hinzu:     # Wenn Dateien Leerzeichen enthalten, gibt der Befehl mv für diese Zeile einen Fehler zurück.

%Vor%     
Steven 21.09.2009 20:17
quelle
1

Sie sollten Follow-ups als Änderungen an Ihrer Frage oder in Kommentaren und nicht als Antwort veröffentlichen.

Diese Struktur:

%Vor%

Erträge:

%Vor%

Während dieser:

%Vor%

Erträge:

%Vor%     
Dennis Williamson 21.09.2009 21:00
quelle

Tags und Links