我如何按顺序列出文件

我如何按顺序列出文件

我有一个 18GB 的​​文件需要下载,但网络连接不太好。无法使用 Torrenting。因此,我将文件分成 100 个部分,最后,全部下载完毕。现在,我需要使用类似 cat 的程序将文件重新组合在一起。

因此我需要按计数顺序列出文件,然后将它们连接起来。文件名类似于 SomeFile1.dcd、SomeFile2.dcd、SomeFile3.dcd、SomeFile10.dcd、...SomeFile100.dcd

为了使连接正常工作,我需要按正常的数字顺序列出文件,否则框架将会变得混乱。

我怎样才能按正常数字 1,2,3,4.... 类型顺序列出文件?

答案1

使用bash括号扩展:

cat SomeFile{1..100}.dcd >final_file

您可以首先检查一下它被扩展为哪些文件:

echo SomeFile{1..100}.dcd

这里{1..100}将扩充为1,2,3....100

例子 :

$ echo SomeFile{1..5}.dcd
SomeFile1.dcd SomeFile2.dcd SomeFile3.dcd SomeFile4.dcd SomeFile5.dcd

答案2

perl也可以在循环中使用扩展语法:

perl -e 'print "SomeFile$_.dcd " for 1..100' > foo.txt

答案3

使用findsort

find . -maxdepth 1 -type f -name "*.dcd" | sort -V

答案4

通配符模式将扩展到有序与通配符模式匹配的文件(和目录)列表;

如果您当前工作目录中只有这些文件,则只需:

cat * > out

或者如果没有其他以“SomeFile”开头的文件/目录:

cat SomeFile* > out

或者如果没有其他以“.dcd”结尾的文件/目录:

cat *.dcd > out

此外,在中zsh,您可能只使用*(.)通配符模式包含常规文件:

cat *(.) > out
cat SomeFile*(.) > out
cat *(.).dcd > out

相关内容