我是bash脚本的新手。我的目录中有一个文件列表,我想将它们存储到一个数组中,然后在数组中对它们进行排序。我已将文件列表存储到我的数组中;但是,我无法订购它们。
for file in test_file*.txt;
do
TEST_FILE="${file##*/}"
arrayname[index]=$TEST_FILE
index=$(expr $index + 1)
done
将所有以test_file开头并以.txt结尾的文件存储到我的数组中。我觉得棘手的部分就是整理它。我已经做了一些挖掘,但我找不到解决方案。
如果我以后运行编译python代码,我会做一个循环并调用
python3 test.py "$arrayname[n]"
并增加n?
我当前的目录包含这些文件,它存储在数组" arrayname []"形式如下:
test_file0.txt, test_file12.txt, test_file11.txt, test_file10.txt,
我正在尝试对其进行排序并将其存储到另一个数组中,因此新数组的顺序如下:
test_file0.txt, test_file10.txt, test_file11.txt, test_file12.txt
答案 0 :(得分:1)
如果您的sort
知道-V
(GNU排序):
readarray -t files < <(printf "%s\n" test_file* | sort -V)
printf "%s\n" "${files[@]}"
#bash 4.4+
readarray -t -d '' files1 < <(find . -maxdepth 1 -name test_file\* -print0 | sort -zV)
printf "%s\n" "${files1[@]}"