标签:bash script 重命名文件
命令行里操作有空格的文件多少有点不方便,最近也在学脚本,就根据一个重命令空白字符为下划线的脚本,梳理下。
#!/bin/bash # 重命名文件计数 handle_file=0 found_mark=0 for file_name in *; do # 通过grep的返回值来判断 echo "$file_name" | grep -q " " if [ $? -eq $found_mark ];then fileName=$file_name newName=`echo $fileName | sed -e ‘s/ /_/g‘` mv "$fileName" $newName let "handle_file=$handle_file+1" fi done echo "$handle_file file renamed." exit 0
这个脚本比较简单,通过grep判断有空白字符,就直接使用sed替换,mv重命名了。
grep
-q 静默,匹配到返回值为0.这个选项很适合用在脚本里。
对于for循环使用的*通配符匹配列表,现在还有点困惑,是怎么就直接匹配当前目录下了。
不过在命令行中直接使用 * 就已经表现匹配当前目录下的文件了。以为bash可以直接支持正则表达式,不过测试下来并非如此。
[LiuBai@VM.Fedora a C]$ echo * a like [LiuBai@VM.Fedora a C]$ * -bash: ./a: Permission denied [LiuBai@VM.Fedora a C]$ ‘[0-9]$‘ bash: [0-9]$: command not found...
标签:bash script 重命名文件
原文地址:http://liubaimoon.blog.51cto.com/9631203/1582604