替换包含(and)的文件名



我有多个使用此格式的文件

a file (www.something.com)

,我想递归地删除(www.something.com)。我希望那

rename 's/(*)//' a file (www.something.com)

应该做这项工作,但事实并非如此!为什么?那我想像这样递归做到这一点

find . -name '*(*)' -exec bash -c 'mv $0 ${0/(*)/}' {} ;

您需要说:

rename 's/(.*)//' filename

您需要在*之前添加.

这应该有效:

s='a file (www.something.com)'
touch "$s"
ls "a file"*
a file (www.something.com)
# renane command
rename 's/ [^ ]*$//' "$s"
ls "a file"*
a file

使其递归使用:

find . -name '*(*)' -exec rename 's/ [^ ]*$//' '{}' ;

或否则不使用Rename

find . -name '*(*)' -exec bash -c 'mv "$1" "$(sed "s/ [^ ]*$//"<<<"$1")"' - '{}' ;

相关内容

  • 没有找到相关文章

最新更新