複数のテキストから同じ行数の文字列を抽出し,別のテキストに出力する方法
環境:linux,Windows XP
よろしくお願いします.以下のようなデータが数千個あります.
2020-01-01_00.txt
2020-01-01,00,109.18970,18.36816,30.618,0.000,91.276,292.712
2020-01-01,00,109.54297,18.39178,30.676,0.000,90.044,292.653
2020-01-01,00,109.89642,18.41394,30.581,0.000,89.560,293.056
・
・
・
・
2020-01-01_01.txt
2020-01-01,01,109.18970,18.36816,27.998,350.080,85.071,294.773
2020-01-01,01,109.54297,18.39178,28.187,355.642,86.229,294.425
2020-01-01,01,109.89642,18.41394,28.136,359.157,87.494,294.675
・
・
・
・
2020-01-01_02.txt
2020-01-01,02,109.18970,18.36816,30.200,551.398,75.640,296.445
2020-01-01,02,109.54297,18.39178,30.356,556.004,79.117,295.921
2020-01-01,02,109.89642,18.41394,29.953,558.076,82.460,295.942
・
・
・
・
ここで,私がやりたいのは,同じディレクトリ内にある数千個のテキストから同じ行数の文字列を抽出し,別のテキストファイルに出力することです.つまり,結果の出力は以下のようにしたいのです.
109.18970,18.36816.txt
2020-01-01,00,109.18970,18.36816,30.618,0.000,91.276,292.712
2020-01-01,01,109.18970,18.36816,27.998,350.080,85.071,294.773
2020-01-01,02,109.18970,18.36816,30.200,551.398,75.640,296.445
・
・
・
・
109.54297,18.39178.txt
2020-01-01,00,109.54297,18.39178,30.676,0.000,90.044,292.653
2020-01-01,01,109.54297,18.39178,28.187,355.642,86.229,294.425
2020-01-01,02,109.54297,18.39178,30.356,556.004,79.117,295.921
・
・
・
・
109.89642,18.41394.txt
2020-01-01,00,109.89642,18.41394,30.581,0.000,89.560,293.056
2020-01-01,01,109.89642,18.41394,28.136,359.157,87.494,294.675
2020-01-01,02,109.89642,18.41394,29.953,558.076,82.460,295.942
・
・
・
・
私なりに以下のshを作成しましたが,処理が通りません.間違えているところをご指摘いただけないでしょうか.よろしくお願いします.
#!/bin/sh
BUFIFS=$IFS
IFS=
exec 3< lonlat.txt
while read FL 0<&3
for i in 2020-??-??_??.txt
$data = cat $i | grep "$FL" $i
print $data >> ./out/$FL
done
exec 3<&-
IFS=$BUFIFS
#lonlat.txtの内容は以下の通り
109.18970,18.36816
109.54297,18.39178
109.89642,18.41394
・
・
・
#処理したものを/outに出力
お礼
ありがとうございます。 シングルコーテーションとエスケープで記述に戸惑いましたが awk '$2 == '"\"$LINE"\"' { print $1 }' filelist.txt でできました。