如何在shell中按名称选择多个文件

时间:2017-04-26 10:14:28

标签: linux bash shell

例如,同一路径中有许多文件名为:

FILE-2013-01-02.csv, FILE-2013-01-03.csv,......FILE-2013-12-31.csv   

我想选择几个文件并将它们复制到其他路径中。

简单地说,要选择包含 January 信息的文件,我会使用cp -r FILE-2013-01* ./other/path

如果我想在第1个月,第3个月,第5个月中选择shell中有一个句子的所有文件,我该怎么办?

4 个答案:

答案 0 :(得分:2)

这应该这样做:

cp -r FILE-2013-0{1,3,5,7}* ./other/path

答案 1 :(得分:2)

您可以使用:

cp -r FILE-2013-0[1357]-*.csv your_path

答案 2 :(得分:1)

按如下方式使用:

|

答案 3 :(得分:0)

cp -r FILE-2013-0[1357]-[0-3][0-9].csv /otherpath/

如果您想要2013-11和2013-02但没有2013-12或2013-01,您可以使用grep -E -w来获得更复杂的正则表达式选项:2013-(1[01]|0[2357])

ls | grep -E -w '^FILE-2013-(1[01]|0[2357])-[0-3][0-9].csv$' | xargs -i cp {} /otherpath/

我更愿意找到这个。

find ./ -type f -name "FILE-2013-0[1357]-[0-3][0-9].csv" -exec cp -r {} /otherpath/ \;