如何通过删除bash中的字符来重命名多个文件?

前端之家收集整理的这篇文章主要介绍了如何通过删除bash中的字符来重命名多个文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须通过删除每个文件名的前5个字符来重命名目录中的多个文件.
我怎么能这样做bash / shell?我正在使用Ubuntu 11.10.谢谢.
一个带有一点sed的简单for循环可以解决这个问题:
% touch xxxxx{foo,bar,baz}
% ls -l xxxxx{foo,baz}
-rw-r--r--  1 jamesog  wheel  0 29 Dec 18:07 xxxxxbar
-rw-r--r--  1 jamesog  wheel  0 29 Dec 18:07 xxxxxbaz
-rw-r--r--  1 jamesog  wheel  0 29 Dec 18:07 xxxxxfoo  
% for file in xxxxx*; do mv $file $(echo $file | sed -e 's/^.....//'); done
% ls -l foo bar baz
-rw-r--r--  1 jamesog  wheel  0 29 Dec 18:07 bar
-rw-r--r--  1 jamesog  wheel  0 29 Dec 18:07 baz
-rw-r--r--  1 jamesog  wheel  0 29 Dec 18:07 foo

sed中的替换regex表示匹配字符串开头的任意五个字符(.表示任何字符)(^)并将其删除.

猜你在找的Bash相关文章