我有一个名为 baypass 的文件夹,其中包含 2181 个文件,如下所示(仅以几个文件为例):
anacovis2_210_summary_betai_reg.out_new
anacovis2_2110_summary_betai_reg.out_new
anacovis2_2111_summary_betai_reg.out_new
anacovis2_2112_summary_betai_reg.out_new
我想把它们全部排序,所以我用了
ls -v -1
它帮我完成了排序工作,但我想将这些已排序的文件保存在一个目录中。因此,当我输入“ls -v -1”时,文件会排序,但如果我输入 pwd 或 ls 或任何其他命令,它们将再次取消排序。那么我该如何保存已排序的文件呢?我希望对它们进行排序并保存,以便能够合并它们。文件的顺序非常重要。
答案1
如果您的目标是按数字顺序合并这些文件,那么这就是您最终需要的命令。使用壳支撑膨胀。
cat anacovis2_{1..2181}_summary_betai_reg.out_new >> one_file
答案2
在 中zsh
,你会这样做:
files=(*.out_new(n))
(n)
是一个 glob 限定符,导致 glob 按数字排序(也可以使用 全局切换所有 glob set -o numericglobsort
)。
进而:
do-something-with $files
在bash
,ksh93
或mksh
(或zsh
) 中,您可以将 GNU 列出的文件存储ls
在数组中:
eval "list=($(ls -v --quoting-style=shell-always))"
do-something-with "${files[@]}"
答案3
您可以使用别名:
alias ls='ls -1v'