Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取bashshell中嵌套循环中的文件_Bash_Shell_For Loop - Fatal编程技术网

读取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谢谢你纠正了这个错误@切普纳:谢谢你纠正了这个错误!