2つのファイルの行を通る並列ループ[閉じる]

2つのファイルの行を通る並列ループ[閉じる]

私が作成しているスクリプトの目的は、2つのファイルシリーズを比較することです。ファイル名自体は、2つの別々のファイルに1行に1つずつ格納されます。私の考えは、それぞれファイル名のリストに対応する2つのループを持つことですwhile read。しかし、これらの2つのループをどのように混ぜますか?

while read compareFile <&3; do     
 if [[ ! $server =~ [^[:space:]] ]] ; then  #empty line exception
    continue
 fi   
    echo "Comparing file - $compareFile"
 if diff "$compareFile" _(other file from loop?_) >/dev/null ; then
     echo Same
 else
      echo Different
 fi 
done 3</infanass/dev/admin/filestoCompare.txt

2つのwhile readループを介して2つの異なるリストにあるファイルを同時に比較できる必要があります。これは可能ですか?

ベストアンサー1

2つのループは必要ありません。 1つのループで両方のファイルを読み取るだけです。

while read compareFile1 <&3 && read compareFile2 <&4; do     
 if [[ ! $server =~ [^[:space:]] ]] ; then  #empty line exception
    continue
 fi   
    echo "Comparing file - $compareFile"
 if diff "$compareFile1" "$compareFile2" >/dev/null ; then
     echo Same
 else
      echo Different
 fi 
done 3</infanass/dev/admin/filestoCompare.txt 4<other_file

おすすめ記事