我有多个使用此格式的文件
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")"' - '{}' ;