Bash:単一のFor Inループを使用して2つのリストを繰り返します。

Bash:単一のFor Inループを使用して2つのリストを繰り返します。

2つの独立したループがあるとしましょう。

for file1 in `ls Dir1/` ; do
    echo $file1
done

for file2 in `ls Dir2/` ; do
    echo $file2
done

シングルループ疑似コードで両方のディレクトリを繰り返したいと思います。

for file1 , file2 in `ls Dir1` , `ls Dir2`
do
    echo $file1
    echo file2
done

可能ですか?

ベストアンサー1

whileファイル名に改行がないと仮定すると、適切な入力を持つループが操作を実行できます。

paste -d/ <(ls /var) <(ls /usr) |
  while IFS=/ read -r e u; do
    printf '%s\n' "$e $u"
  done

おすすめ記事