我有很多子目录的目录与他们的#盈:Linux的批量重命名的目录和带#字符的名称
#adhasdk
#ad18237
我要重命名所有这些,删除#卡拉科特 我试着要做:
rename -n `s/#//g` *
但似乎没有工作。
-bash: s/#//g: No such file or directory
对此的任何想法。 谢谢
我有很多子目录的目录与他们的#盈:Linux的批量重命名的目录和带#字符的名称
#adhasdk
#ad18237
我要重命名所有这些,删除#卡拉科特 我试着要做:
rename -n `s/#//g` *
但似乎没有工作。
-bash: s/#//g: No such file or directory
对此的任何想法。 谢谢
只需使用
$ rename 's/^#//' *
使用-n只是为了检查你认为它会发生真的发生。 在你比如你有关于在错误消息中使用的错误引号(反引号)
-bash: s/#//g: No such file or directory
庆典正试图执行一个名为s/#//g
命令的线索。
没有使用g
(全局)并且不固定正则表达式,您将替换任何#
,而不仅仅是第一个位置中的那个。
问题是你使用反引号(`)。你应该用正常报价:
rename -n 's/#//g' *
我不知道它是否只是当你键入了这里,但“重命名”命令应该工作,如果一个错字别:
的‘-n’告诉它没有真正做任何事情。后面的引号只是错误的(他们的意思是一些,但不是你想要的东西)。
for DIR in \#*/
do
echo mv "$DIR" "${DIR/#\#/}"
done
我不得不重命名给定文件夹内的所有文件夹。每个文件夹名称在圆括号内都有一些文本。以下命令从所有文件夹名称中删除圆括号:
重命名's /(.+)//'*
+1为锚点。方法如下:'s/^#//' –