Linux Shell实现批量重命名的方法


本篇内容主要讲解“Linux Shell实现批量重命名的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux Shell实现批量重命名的方法”吧!0、用类似 GPRename 这样的图形软件进行批量重命名1、删除所有的 .bak 后缀:rename ‘s/.bak$//’ *.bak2、把 .jpe 文件后缀修改为 .jpg:rename ‘s/.jpe$/.jpg/’ *.jpe3、把所有文件的文件名改为小写:rename ‘y/A-Z/a-z/’ *4、将 abcd.jpg 重命名为 abcd_efg.jpg:for var in *.jpg; do mv “$var” “${var%.jpg}_efg.jpg”; 香港云主机 done5、将 abcd_efg.jpg 重命名为 abcd_lmn.jpg:for var in *.jpg; do mv “$var” “${var%_efg.jpg}_lmn.jpg”; done6、把文件名中所有小写字母改为大写字母:for var in `ls`; do mv -f “$var” `echo “$var” |tr a-z A-Z`; done7、把格式 *_?.jpg 的文件改为 *_0?.jpg:for var in `ls *_?.jpg`; do mv “$var” `echo “$var” |awk -F ‘_’ ‘{print $1 “_0” $2}’`; done8、把文件名的前三个字母变为 vzomik:for var in `ls`; do mv -f “$var” `echo “$var” |sed ‘s/^…/vzomik/’`; done9、把文件名的后四个字母变为 vzomik:for var in `ls`; do mv -f “$var” `echo “$var” |sed ‘s/….$/vzomik/’`; done10. 把.txt变成.txt_bak 的后缀ls *.txt|xargs -n1 -i{} mv {} {}_bakxargs -n1 –i{} 类似for循环,-n1意思是一个一个对象的去处理,-i{} 把前面的对象使用{}取代,mv {} {}_bak 相当于 mv 1.txt 1.txt_bakfind ./*.txt -exec mv {} {}_bak ;这个命令中也是把{}作为前面find出来的文件的替代符,后面的””为”;”的脱意符,不然shell会把分号作为该行命令的结尾.==================================================================既然要批量替换文件名,那么肯定得用一个for循环依次遍历指定目录下的每个文件。对于每个文件,假如该文件的名称为name.oldext,那么我们必须原始文件名中挖出name,再将它与新的文件扩展名newext拼接形成新的文件名name.newext。依照这样的思路,就诞生了下面的脚本:#!/bin/basholdext=”JPG”newext=”jpg”dir=$(eval pwd)for file in $(ls $dir | grep .$oldext) do name=$(ls $file | cut -d. -f1) mv $file ${name}.$newext doneecho “change JPG=====>jpg done!” 下面对针对这个程序作简单说明:1.变量oldext和newext分别指定旧的扩展名和新的扩展名。dir指定文件所在目录;2.“ls $dir | grep .$oldext”用来在指定目录dir中获取扩展名为旧扩展名的所有文件;3.在循环体内先利用cut命令将文件名中“.”之前的字符串剪切出来,并赋值给name变量;接着将当前的文件名重命名为新的文件名。 通过这个脚本,所有照片的扩展名都成功修改。为了使这个脚本更具有通用型,我们可以增加几条read命令实现脚本和用户之间的交互。改进版的脚本如下:#!/bin/bashread -p “old extension:” oldextread -p “new extension:” newextread -p “The directory:” dircd $dirfor file in $(ls $dir | grep .$oldext) do name=$(ls $file | cut -d. -f1) mv $file ${name}.$newext echo “$name.$oldext ====> $name.$newext” doneecho “all files has been modified.” 修改后的脚本可以批量修改任意扩展名。到此,相信大家对“Linux Shell实现批量重命名的方法”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: javascript中如何替换所有字符串

今天小编给大家分享一下javascript中如何替换所有字符串的相关知识点,内容详细,逻辑清晰,相 香港云主机信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。具体内容如下:js本身不…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/06 19:04
Next 08/06 19:04

相关推荐