发布网友 发布时间:2022-04-24 10:01
共2个回答
热心网友 时间:2023-10-09 16:19
if [ $# -lt 3 ] ; then # $#表示命令行上给的参数个数,如果参数个数小于3,以下就提示用法并退出
cat < #显示下面的一行文字
ren -- renames a number of files using sed regular expressions
(ren--- 对于一组用sed 正则表达式描述的一组文件进行重命名。
USAGE: ren 'regexp' 'replacement' files...
用法: ren 正则表达式 替换内容 文件列表
EXAMPLE: rename all *.HTM files in *.html:
例:对于所有的 *.html 替换成 *.HTM ,就是换掇。
ren 'HTM$' 'html' *.HTM
HTM$正则表达式,表示符合以HTM结尾的; 把 所有*.HTM后缀替换成 *.html
HELP 显示SHELL帮助
exit 0 退出SHELL脚本
fi
--------------------------------------------------------------------------------------------------
OLD="$1" OLD变量保存第一个参数
NEW="$2" NEW变量保存第二个参数
shift
shift 两次shift之后, 原来第三个参数及向前移动成为了第一个参数,后续参数依次向前移动(原第1,2参数相当于被从参数列表中踢出)
for file in $*; do $*表示剩下的所有参数集合,本句表示对于剩下的参数列表中的每一个文件(用file记录并循环)
if [ -f "$file" ] ; then 如果文件存在
newfile=`echo "$file" | sed "s/${OLD}/${NEW}/g"` 把file文件名中的OLD部分替换成NEW,成为新的文件名保存在newfile中
if [ -f "$newfile" ]; then 如果newfile存在……
echo "ERROR: $newfile exists already"
else
echo "renaming $file to $newfile ..." 如果newfile不存在,则可以放心地进行重命名工作。
mv "$file" "$newfile" 文件重命名
fi
fi
done
热心网友 时间:2023-10-09 16:19
if [ $# -lt 3 ] ; then #此举判断什么??
-----> 判断脚本的参数是否小于 3 个,若小于三个,则提示帮助信息
ren 'HTM$' 'html' *.HTM #这几句什么意思???
-----> 这个就是输出上面的原文,即这个脚本的帮助信息。这里的用法叫 here document,你搜索 here document 就能找到相关的内容了
done #整体这段代码不知什么功能啊、、、
-----> 这个是实际实现这个脚本的功能
脚本第一个参数为需要替换的内容,第二个是替换成什么内容(即结果字串),第三个以后的参数为文件名
脚本对每个一文件名做替换:替换文件名中第一个参数的字串为第二个参数的字串
示例如:(脚本文件名为 ren)
执行:ren abc xxx abcde.txt aaabc.txt
结果是把 abcde.txt 和 aaabc.txt 改名为 xxxde.txt 和 aaxxx.txt