1
成功していない長い検索の後、私はいくつかの助けを求めてここに来ました。Bash - あるファイルのid文字列が別のファイルのid範囲ポリシーに含まれているかどうかを確認する方法?
A.TXT:
AC0359
AC0360
AC0361
AC0362
AC0369
AC0372
AC0374
AC0376
AC0380
BD0381
BD0384
BD0386
BD0389
BD0390
BD0392
BD0393
EF0394
EF0395
EF0398
EF0402
EF0404
EF0409
EF0410
- - ID列 B.TXTのリストが含まれています。例えばidの範囲政策
のリストが含まれてい A.TXT:私は2つのファイルを持っていますB.TXT:
from="AC0000" to="AC0400"
from="BD0300" to="BD0700"
from="EF0400" to="EF1000"
from="GT0000" to="GT2700"
私はそれがB.TXTに記載されている範囲の方針の1つに含まれる場合、A.TXTに記載されたID列のそれぞれについて、知っていただきたいと思います。私はかなりの時間のための解決策を見つけることを試みているので、私は本当に助けに感謝します。
これは私がこれまでにやっていることです:
found_range=false
while read barcode; do
while read range_line <&3; do
if [[ $range_line == from=* && $found_range = false ]]
then
start_range=$(echo $range_line | cut -d '"' -f 2);
end_range=$(echo $range_line | cut -d '"' -f 4);
if [[ ! "$barcode" < "$start_range" && ! "$barcode" > "$end_range" ]]
then
echo "$barcode is between the range $start_range and $end_range"
fi
fi
done 3<b.txt
done <a.txt
ありがとう!
あなた自身で解決策を試しましたか? – 123
はい、私は試しましたが、私はスクリプトをbashするのがかなり新しいです。これを解決しようとする試みはうまくいきません。私はa.txtから各行を読み込み、変数$ recに保存しようとしました。 $ recごとに、b.txtの同じid接頭辞で始まるポリシーを見つけるためにgrepを使いました。しかし、私は同じ反復で2つの別々のファイルから読み取ることは問題である可能性があることを理解しています、私はIDの比較がこれのために失敗しているか、またはIDを範囲と適切に比較していないためです。 – dabadie