我有一组以1到1000 .csv的数字命名的文件,我想要复制名称以1或2位数字开头的文件(例如1,10,11,12等)。 怎么办呢?
答案 0 :(得分:2)
您可以轻松完成:
cp 1[0-9].csv /home
cp 1.csv /home
将其另存为 file.sh 然后以
运行$bash file.sh
这会将所有文件复制到主目录
答案 1 :(得分:1)
应始终有效的正确方法:
find -regex '\./1[0-9]?\.csv' -exec cp {} destination \;
由于find
使用完整路径,我们必须在开头匹配./
。然后是文字1
,然后选择(注意?
)范围0-9
中的字符,最后是扩展名。任何.
必须转义为\.
。
对于每个匹配的文件,find
将执行-exec
给出的命令,直到\;
,用文件名替换{}
。
要检查它是否捕获了正确的文件,请执行以下操作:
find -regex '\./1[0-9]?\.csv'
一种更简单的方法,如果您的目录中没有其他混乱,则可以正常工作:
cp 1.csv 1?.csv destination