2016-03-24 2 views
1

Ich möchte eine iterative Aufgabe auf einer Reihe von ähnlichen Dateien mit ähnlichen Teildateien Namen enthalten "{$ ID}". Das Programm wird für jede einzelne Datei manuell ausgeführt. Ich wollte eine for-Schleife in der Shell schreiben, um 'ID' aus einer TXT-Datei zu nehmen und die Aufgabe zu erledigen. Ich kann das Eingabeargument ID in dem for-Schleife aus den Werten in coloumn1 der Datei Test.txt eaxmple geben:für die Schleife in der Shell unter Eingabe von Spaltenname einer Tabulator-Datei mit Trennzeichen

for ID in 'values in coloumn1 of test.txt file' 
    do 
    file1=xyz_{$ID}.txt 
    file2=abc_{$ID}.txt 
    execute the defined function using file1 and file2 
    write to > out_{$ID}.txt 
done 
+0

Possible Duplikat [Looping über Wertepaare in bash] (http://stackoverflow.com/questions/28725333/looping-over-pairs-of-values-in-bash) – tripleee

Antwort

1

Iterate über die Datei mit einer while Schleife, so dass read beide Eingängen eine Linie von der Datei und spaltet die erste Spalte von jeder Zeile.

while read -r ID rest; do 
    ... 
done < test.txt 

Wenn die Spalten durch ein anderes Zeichen als Leerzeichen abgegrenzt sind, verwenden IFS daß einzelne Zeichen zu spezifizieren.

# comma-delimited files 
while IFS=, read -r ID rest; do 
    ... 
done < test.txt 
Verwandte Themen