我有多個文件,這種格式包含(和)替換文件名
a file (www.something.com)
,我想刪除(www.something.com)
遞歸。我期待
rename 's/\(*\)//' a\ file\ \(www.something.com\)
應該做的工作,但它不!爲什麼?然後,我想這樣做遞歸這樣
find . -name '*\(*\)' -exec bash -c 'mv $0 ${0/\(*\)/}' {} \;
我有多個文件,這種格式包含(和)替換文件名
a file (www.something.com)
,我想刪除(www.something.com)
遞歸。我期待
rename 's/\(*\)//' a\ file\ \(www.something.com\)
應該做的工作,但它不!爲什麼?然後,我想這樣做遞歸這樣
find . -name '*\(*\)' -exec bash -c 'mv $0 ${0/\(*\)/}' {} \;
這應該工作:
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讓它遞歸:
find . -name '*\(*\)' -exec rename 's/ [^ ]*$//' '{}' \;
否則,而無需使用重命名:
find . -name '*\(*\)' -exec bash -c 'mv "$1" "$(sed "s/ [^ ]*$//"<<<"$1")"' - '{}' \;
你需要說:
rename 's/\(.*\)//' filename
您需要*
之前添加.
。
所屬的Unix和Linux stackexchange –