用于将与模式匹配的文件移动到新目录的单行程序

时间:2016-12-22 17:42:08

标签: linux bash unix move

我需要将主目录中的文件移动到新目录中。我需要选择名称以随机20个大写字母开头的文件。随机集将仅包含4个字母:T,A,G或C.由于搜索的名称的可变性,以及由20个连续大写字母组成但不符合T,A,G的名称的存在,或C只要求,正则表达式似乎是这里的最佳选择。

我尝试使用正则表达式,但它不适用于这种单行程序。

find source -name "([TAGC]{20})" -exec mv -i {} -t ~/dst \; 

是否有办法为这种情况制作这种或类似的单行工作,或者我是否需要编写脚本?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用-regex选项:

find . -regex ".*/[TAGC]{20}[^/]*$" -exec mv -i {} -t ~/dst \;

答案 1 :(得分:1)

正则表达式必须匹配以./

开头的整个文件名
find . -regextype posix-egrep -regex '\./[TAGC]{20}' -print