【问题标题】:Read two folders in a for loop in bash在bash的for循环中读取两个文件夹
【发布时间】:2018-03-16 16:52:36
【问题描述】:

我实现了一个 bash 脚本,或者我读取了两个输入文件。 我希望我读取的两个文件夹同时增加它们各自的文件。

我的例子是:

for folder1 in $in1/*;
do
for folder2 in $in2/*;
do

file1=`basename "$folder1`

file2=`basename "$folder2"`

done 
done

我想知道是否可以让 for 循环同时递增?

提前谢谢你

【问题讨论】:

  • 如果文件夹中有不同数量的文件,您希望发生什么?
  • 您好,这两个文件编号相同,但名称不同。例如:folder1:(file1:01test, file2: 02test...) 和 folder2:(file1:01car, file:02car...)

标签: bash shell loops for-loop


【解决方案1】:

一种选择是将文件名存储在一对数组中:

#!/bin/bash

first=( "$in1"/* )
second=( "$in2"/* )

for i in "${!first[@]}"; do
    first_file=${first[i]}
    second_file=${second[i]}
done

"${!first[@]}" 扩展为第一个数组中的键列表,因此i 将采用值012 等。

如果您的数组长度不等,您将不得不决定如何处理它。此外,每个数组中的文件将按字母顺序排列。

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 2022-11-06
    • 2014-07-07
    • 1970-01-01
    • 2013-10-12
    相关资源
    最近更新 更多