2016-03-24 11 views
1

「{$ ID}」を含む同様の部分ファイル名を持つ一連の類似ファイルに対して反復タスクを実行します。プログラムは、個別のファイルごとに手動で実行されています。私はtxtファイルから 'ID'を取り出してタスクを実行するためにシェルのforループを書こうと思っていました。私は、test.txtというファイルのcoloumn1の値 Eaxmpleからforループで入力引数のIDを与えることができません:タブ区切りファイルの列名から入力を取るループのシェル

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

[bashでの値のペアにわたってループ]の可能な重複(http://stackoverflow.com/questions/28725333/looping-over-pairs-of-values-in-bash) – tripleee

答えて

1

反復whileループを備えたファイル上で、両方からの入力ラインをreadをさせますファイルを作成し、最初の列を各行から分割します。

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

列が空白以外の文字で区切られている場合は、その単一の文字を指定するには、IFSを使用しています。

# comma-delimited files 
while IFS=, read -r ID rest; do 
    ... 
done < test.txt 
関連する問題