如何将排序后的文件保存在单独的目录中?

如何将排序后的文件保存在单独的目录中?

我有一个名为 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,ksh93mksh(或zsh) 中,您可以将 GNU 列出的文件存储ls在数组中:

eval "list=($(ls -v --quoting-style=shell-always))"
do-something-with "${files[@]}"

答案3

您可以使用别名:

alias ls='ls -1v'

相关内容