Regex Sed comand重命名文件夹名称(包含在[]之间的部分)
我有两个问题:Regex Sed comand重命名文件夹名称(包含在[]之间的部分),regex,bash,awk,sed,rename,Regex,Bash,Awk,Sed,Rename,我有两个问题: 首先,如何使用sed命令将更改应用于文件夹而不是文件名? 我试过简单的命令sed-I-e's/Temporada//g'f,但不起作用 我试图使用sed命令重命名至少包含三个部分的文件夹和文件名,如[xxxxx][yyyyy][zzzzz987],但我只想删除不包含数字的文件夹和文件名。我对如何使用正则表达式定义它、如何区分[]部分以及如何区分包含数字的部分感到非常困惑 示例: 起源 项目-【企业】【日期:2016年2月2日】【DBB XXXXX】 结果 项目-[日期:2016年
提前感谢这里有一个脚本可以整理一下(请记住在测试任何东西之前备份数据): 首先,它获取当前目录中以“
Project
”开头的所有文件/目录,并将do
和done
之间的命令应用于每个文件:
- 获取文件/dir名称字符串(
),并应用所需的字符串修改,将新字符串保存在新变量$i
中$new
- 然后将旧文件/dir(
)移动/重命名为新文件($i
)$new
xtd8865@darkstar:~/tmp/temp$ ls -l
total 8
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Enterprise][Date.01032015][DBB\ fda]
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Enterprise][Date.03032015][DBB\ dfada]
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Enterprise][Date.04032015][DBB\ afdad]
drwxr-xr-x 2 xtd8865 users 4096 Feb 7 13:34 Project\ -\ [Enterprise][Date.3234223][DBB\ dafa]/
-rwxr-xr-x 1 xtd8865 users 169 Feb 7 13:35 script.sh*
xtd8865@darkstar:~/tmp/temp$ ./script.sh
Project - [Enterprise][Date.01032015][DBB fda]
Project - [Enterprise][Date.03032015][DBB dfada]
Project - [Enterprise][Date.04032015][DBB afdad]
Project - [Enterprise][Date.3234223][DBB dafa]
xtd8865@darkstar:~/tmp/temp$ ls -l
total 8
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Date.01032015]
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Date.03032015]
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Date.04032015]
drwxr-xr-x 2 xtd8865 users 4096 Feb 7 13:34 Project\ -\ [Date.3234223]/
-rwxr-xr-x 1 xtd8865 users 169 Feb 7 13:35 script.sh*
如您所见,它将重命名文件和目录
sed命令本身使用sed的反向引用功能。有关反向参考的更多信息,请参见,例如。请添加您想看到的示例。我想你需要像
mv dirTemporada dir
和mv“[xxxxx][yyyy][zzzz666]”xxxxyyyyxxx
(当[xxxxx][yyyyy][zzzz666]
在任何部分都有数字时。以及跳过哪些文件。如何处理文件[xxxxx][yyyyyy][zz666]和一些外部括号
查看一下重命名
命令。至少有两种不同的重命名
实现。示例已添加到文章中。UNIX中没有文件夹。您可能正在考虑目录。在开始编写脚本之前,请阅读UNIX教程的介绍。变量“$i"
将对许多真实世界的文件名造成严重破坏。输出中的反斜杠看起来很奇怪,与OP的示例不匹配。就反斜杠而言,复制了OP所需的输出,连字符周围有一个空格。在命令替换中,您仍然有一个空的无引号的echo$i
。我的ls
文件名中没有反斜杠空格;您的文件名中有反斜杠空格吗?
xtd8865@darkstar:~/tmp/temp$ ls -l
total 8
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Enterprise][Date.01032015][DBB\ fda]
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Enterprise][Date.03032015][DBB\ dfada]
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Enterprise][Date.04032015][DBB\ afdad]
drwxr-xr-x 2 xtd8865 users 4096 Feb 7 13:34 Project\ -\ [Enterprise][Date.3234223][DBB\ dafa]/
-rwxr-xr-x 1 xtd8865 users 169 Feb 7 13:35 script.sh*
xtd8865@darkstar:~/tmp/temp$ ./script.sh
Project - [Enterprise][Date.01032015][DBB fda]
Project - [Enterprise][Date.03032015][DBB dfada]
Project - [Enterprise][Date.04032015][DBB afdad]
Project - [Enterprise][Date.3234223][DBB dafa]
xtd8865@darkstar:~/tmp/temp$ ls -l
total 8
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Date.01032015]
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Date.03032015]
-rw-r--r-- 1 xtd8865 users 0 Feb 7 13:34 Project\ -\ [Date.04032015]
drwxr-xr-x 2 xtd8865 users 4096 Feb 7 13:34 Project\ -\ [Date.3234223]/
-rwxr-xr-x 1 xtd8865 users 169 Feb 7 13:35 script.sh*