【发布时间】:2022-01-11 02:52:39
【问题描述】:
我正在尝试重命名的文件在目录中包含带有文件名的双引号。
/tables/ddl/ 目录
"user".sql
"customer".sql
inventory.sql
"orders".sql
希望删除包含该文件名的双引号。 像这样:
user.sql
customer.sql
inventory .sql
orders.sql
在我的 shell 脚本中,为了查找带双引号的文件,我使用了带有正则的 find 命令,如下所示。它显示带有双引号的文件列表。
find . -name '*["]*'
我也尝试过中继目录和重命名文件。
for myfile in /tables/ddl/*; do
echo $myfile
rename 's,^[0-9]{2}\.,,' *sql
done
是否可以同时find和rename文件包含双引号?
【问题讨论】:
-
首先,让我澄清一下你真正想要做什么。是否要通过删除两个前导数字和以下点 if 文件名包含双引号来重命名文件?我看到 /tables/ddl/ 中的一些文件包含双引号,但它们都没有前导数字。您能否更新您的问题,包括与第二次操作匹配的文件名以及预期结果?
-
感谢@tshiono 忘记添加所需的结果。补充说
-
感谢您的及时反馈。顺便说一句,
rename 's,^[0-9]{2}\.,,' *sql命令呢?您只是举例说明rename命令的用法吗? -
是的。在另一个问题中找到了用于重命名带有特殊字符的文本的正则表达式命令。用于解释问题。