0

我有一组以 1 到 1000 .csv 的数字命名的文件,我想复制名称以 1 开头的 2 个或更少数字的文件(例如 1、10、11、12 等)。如何才能做到这一点?

4

2 回答 2

2

你可以轻松做到:

cp 1[0-9].csv /home
cp 1.csv /home

将此另存为file.sh 然后运行为

$bash file.sh

这会将所有文件复制到主目录

于 2012-09-09T07:00:41.220 回答
1

应该始终有效的正确方法:

find -regex '\./1[0-9]?\.csv' -exec cp {} destination \;

由于find使用完整路径,我们必须./在开头匹配 a。然后是文字1,然后是可选的(注意?)范围中的字符0-9,最后是扩展名。任何.s 都必须转义为\.

对于每个匹配的文件,find将执行由 给出的命令-exec,直到\;,替换{}为文件名。

要检查它是否捕获了正确的文件,请执行以下操作:

find -regex '\./1[0-9]?\.csv'

一种更简单的方法,如果您的目录中没有其他混乱,则可以使用:

cp 1.csv 1?.csv destination
于 2012-09-09T06:58:46.113 回答