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


0

我有一个名为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或任何其他命令,它们将再次不排序。那么如何保存已排序的文件?我想对它们进行排序和保存,以便能够合并它们。文件的顺序非常重要。


听起来像是通过重命名文件使“ anacovis2_210”变为“ anacovis2_0210” 会有所帮助,这时它将以ls自然排序。您愿意接受这个想法吗?
杰夫·谢勒

Answers:


4

如果您的目标是按数字顺序合并这些文件,则最终需要使用此命令。使用外壳支撑扩展

cat anacovis2_{1..2181}_summary_betai_reg.out_new >> one_file

1
是的,谢谢阿夫申。我得到了想要的输出。
Anna1364

2

在中zsh,您可以执行以下操作:

files=(*.out_new(n))

(n)是一个glob限定符,它导致对glob进行数字排序(也可以使用全局切换所有glob set -o numericglobsort。)

接着:

do-something-with $files

bashksh93mksh(或zsh)中,您可以将GNU列出的文件存储ls在具有以下内容的数组中:

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

1

您可以使用别名:

alias ls='ls -1v'

谢谢@abitmol,是的,我对它们进行了排序并保存,但是当我运行cat命令“ cat *> covariable1”时,它将根据未排序的顺序合并文件。
Anna1364'9
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.