我有一组文件。
file1, file2, file3
我需要使用嵌套for循环在bash脚本中成对读取它们。
file1, file2
file1, file3
file2, file3
我该怎么做?
答案 0 :(得分:0)
要浏览目录中两个文件的所有组合:
flist=(*)
for i in "${!flist[@]}"
do
file1="${flist[i]}"
for file2 in "${flist[@]:i+1}"
do
echo "Files: $file1 $file2"
done
done
flist=(*)
创建一个包含当前目录中所有文件名称的数组。
for i in "${!flist[@]}"; do
在数组flist
的索引上开始循环。
file1="${flist[i]}"
将flast
中第i个文件的名称分配给变量file1
。
for file2 in "${flist[@]:i+1}"; do
在flist
开始第i + 1个文件的所有文件名开始循环。
考虑一个包含三个文件的目录:
$ ls
file1 file2 file3
现在,让我们运行命令:
$ flist=(*); for i in "${!flist[@]}"; do file1="${flist[i]}"; for file2 in "${flist[@]:i+1}"; do echo "Files: $file1 $file2"; done; done
Files: file1 file2
Files: file1 file3
Files: file2 file3