我有一个脚本,我想在文件夹中找到纯数字的所有直接子目录,并将它们复制到指定的目标.我有问题获得正则表达式一起工作+,并*在find.示例中的文件夹结构如下:
0/
1/
2/
3/
3.02asd/
3a/
4/
44/
45/
451/
452/
453/
4531/
4532/
45321/
45322/
45323/
666aa/
66a/
66aaa/
temp27/
Run Code Online (Sandbox Code Playgroud)
我已经使用以下命令:
find . -type d -maxdepth 1 -name "[0-9]" | while read f
do
mv $f $TESTPATH
done
find . -type d -maxdepth 1 -name "[0-9][0-9]" | while read f
do
mv $f $TESTPATH
done
find . -type d -maxdepth 1 -name "[0-9][0-9][0-9]" | while read f
do
mv $f $TESTPATH
done
find . -type d -maxdepth 1 -name "[0-9][0-9][0-9][0-9]" | while read f
do
mv $f $TESTPATH
done
find . -type d -maxdepth 1 -name "[0-9][0-9][0-9][0-9][0-9]" | while read f
do
mv $f $TESTPATH
done
Run Code Online (Sandbox Code Playgroud)
不是很好,但它的工作原理,但这应该是可能的,例如:
find . -type d -maxdepth 1 -name "[0-9]+"
Run Code Online (Sandbox Code Playgroud)
要么
find . -type d -maxdepth 1 -name "[0-9][0-9]*"
Run Code Online (Sandbox Code Playgroud)
但它似乎+不起作用*,似乎是通配符.
使用-regex而不是-name,例如
find . -maxdepth 1 -type d -regex ".*/[0-9]*"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
536 次 |
| 最近记录: |