用空格重命名文件

I.e*_*yed 2 linux bash shell rename

我想要一个可以在linux上运行的脚本来重命名这个表单中的文件,即Yahoo Babel Fish - Persistent Cross Site Scripting Vulnerability.jpg到Yahoo-Babel-Fish-Persistent-Cross-Site-Scripting-Vulnerability.jpg

它只删除每个空格并用连字符改变它,如果它是两个空格之间的连字符,它只删除空格,就像你在这部分中看到的那样"Fish - Persistent"到"Fish-Persistent"

mVC*_*Chr 5

如果您想要处理当前目录中的每个文件,可以用两行来完成:

for f in *; do mv "$f" "$(echo $f | sed 's/ /-/g')"; done
for f in *; do mv "$f" "$(echo $f | sed 's/---/-/g')"; done
Run Code Online (Sandbox Code Playgroud)

可能有一种方法可以在一行中完成,但我现在想不到它.

  • +1:你可以将两个sed表达式组合成一个命令:`sed -e's// - /g'-e's/---/ - /g'` (2认同)