【发布时间】:2019-04-28 09:12:53
【问题描述】:
我正在尝试为以 I0[0-9][0-9]- 开头的文件名查找正确的正则表达式,例如:“I097-”。我不熟悉正则表达式,但使用在线,我想出了这个 [I][0][\d][\d][-],我确信这不是我拥有的字符串的最佳正则表达式模式,但是我使用在线正则表达式工具进行了测试,并且可以正常工作。现在我想使用 Linux 'find' 来查找与此正则表达式匹配的所有文件,并通过将匹配的字符串替换为空来重命名结果文件。
From:
I071-PTEN-7
./I071-PTEN-7/I071-PTEN-7.txt
To:
PTEN-7
./PTEN-7/PTEN-7.txt
command used:
find . -name "I0*" -type f -o -name "I0*" -type d -exec rename -n "s/[I][0][\d][\d][-]/''/" {} \;
但它似乎没有做任何事情,不知道发生了什么。任何帮助找到问题或解决方案将不胜感激。谢谢。
【问题讨论】:
标签: regex linux bash unix rename