读取bashshell中嵌套循环中的文件
我有一套文件读取bashshell中嵌套循环中的文件,bash,shell,for-loop,Bash,Shell,For Loop,我有一套文件 file1, file2, file3 我需要使用嵌套for循环在bash脚本中成对地读取它们 file1, file2 file1, file3 file2, file3 如何操作?要查看目录中两个文件的所有组合: flist=(*) for i in "${!flist[@]}" do file1="${flist[i]}" for file2 in "${flist[@]:i+1}" do echo "Files: $file1 $file2
file1, file2, file3
我需要使用嵌套for循环在bash脚本中成对地读取它们
file1, file2
file1, file3
file2, file3
如何操作?要查看目录中两个文件的所有组合:
flist=(*)
for i in "${!flist[@]}"
do
file1="${flist[i]}"
for file2 in "${flist[@]:i+1}"
do
echo "Files: $file1 $file2"
done
done
flist=(*)
创建一个数组,其中包含当前目录中所有文件的名称
“${!flist[@]}”中i的;do
在数组的索引上开始循环flist
file1=“${flist[i]}”
将flast
中的第i个文件的名称分配给变量file1
“${flist[@]:i+1}”中文件2的;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
要查看目录中两个文件的所有组合,请执行以下操作:
flist=(*)
for i in "${!flist[@]}"
do
file1="${flist[i]}"
for file2 in "${flist[@]:i+1}"
do
echo "Files: $file1 $file2"
done
done
flist=(*)
创建一个数组,其中包含当前目录中所有文件的名称
“${!flist[@]}”中i的;do
在数组的索引上开始循环flist
file1=“${flist[i]}”
将flast
中的第i个文件的名称分配给变量file1
“${flist[@]:i+1}”中文件2的;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
我可以读取目录中的所有文件。对于美元中的i(ls)对于j中的do。。。在第二个for循环中完成。我需要读取除$I之外的文件。也许您应该更清楚地了解您拥有的文件,是否只有3个文件?或者每个文件最多读取两次或更多?你到底想要什么还不清楚。例如,是否有一个文件4,它也应该是“文件1,文件4”。是的,我总共有98个文件。我可以读取目录中的所有文件。对于美元中的i(ls)对于j中的do。。。在第二个for循环中完成。我需要读取除$I之外的文件。也许您应该更清楚地了解您拥有的文件,是否只有3个文件?或者每个文件最多读取两次或更多?你到底想要什么还不清楚。例如,是否有一个文件4,它也应该是“文件1,文件4”。是的,我总共有98个文件。@Chepner谢谢你纠正了这个错误@切普纳:谢谢你纠正了这个错误!