gpt4 book ai didi

linux 查找正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:45 25 4
gpt4 key购买 nike

我有一个脚本,我想在其中找到一个文件夹中所有纯数字的直接子目录,并将它们复制到指定的目标位置。我在使正则表达式与 find 中的 +* 一起工作时遇到问题。示例中的文件夹结构如下:

0/
1/
2/
3/
3.02asd/
3a/
4/
44/
45/
451/
452/
453/
4531/
4532/
45321/
45322/
45323/
666aa/
66a/
66aaa/
temp27/

我已将其与以下命令一起使用:

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

不是很好,但它可以工作,但这应该可以通过类似的东西实现:

find . -type d -maxdepth 1 -name "[0-9]+"

find . -type d -maxdepth 1 -name "[0-9][0-9]*"

但是 + 似乎不起作用,而且 * 似乎是通配符。

最佳答案

使用-regex代替-name,例如

find . -maxdepth 1 -type d -regex ".*/[0-9]*"

关于linux 查找正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8354315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com