Shell脚本批量重命名文件后缀的3种实现

今天突然间想起昨天有个问题还没动手实践下,就是利用shell批量修改文件的后缀,现在动手实践一下。

需求:家目录下有一些sql文件,想批量重命名成txt的

1、find + xargs +sed


代码如下:

find /root -name ‘*.sql' |xargs -i echo {}   {} |sed ‘s/sql/txt/2′  |xargs mv

find /root/ -name ‘*.sql' |sed -e ‘s/\(.*\).sql$/mv & \1.txt/e'     //B哥提供

如果参考B哥的,还可以写一个awk版本的:

代码如下:

find /root/ -name ‘*.sql'|awk  ‘{a=$0;sub(/sql$/,”txt”,$0); print “mv”, a,$0}'|bash

find /root/ -maxdepth 1 -name ‘*.sql'|awk  ‘{a=$0;sub(/txt$/,”sql”,$0); system(“mv” ” “a” “$0)}'

2、for 循环


代码如下:

for sql in `find /root -name “*.sql”`;do  mv $sql `echo $sql|sed  ‘s/sql/txt/'` ;done

3、rename


代码如下:

rename  .sql  .txt *.sql  //好像不能递归目录

(0)

相关推荐

  • Shell脚本批量重命名文件后缀的3种实现

    今天突然间想起昨天有个问题还没动手实践下,就是利用shell批量修改文件的后缀,现在动手实践一下. 需求:家目录下有一些sql文件,想批量重命名成txt的 1.find + xargs +sed 复制代码 代码如下: find /root -name '*.sql' |xargs -i echo {}   {} |sed 's/sql/txt/2′  |xargs mv find /root/ -name '*.sql' |sed -e 's/\(.*\).sql$/mv & \1.txt/e'

  • PHP实现读取文件夹及批量重命名文件操作示例

    本文实例讲述了PHP实现读取文件夹及批量重命名文件操作.分享给大家供大家参考,具体如下: 以读取从网上下载的评书解压后的文件夹为例,并批量重命名 文件夹内容如下,现在使用php读取这个文件夹里面的文件,并批量重命名为"隋唐演义+序号.mp3"的格式: <?php $dir1 = './dir1/';//读取文件夹名称 (重命名为dir1避免中文报错,移动到与要执行的php文件同级目录) $filearr = scandir($dir1);//读取文件夹 print_r($file

  • 利用node实现一个批量重命名文件的函数

    前言 最近在吃午饭的时候突然想起来在新大上JS课程时,老师讲node的时候提了一句说node可以批量重命名文件,我就想着看看能不能实现这个功能. 看了node的官方文档,查到fs模块有一个readdir的API,它读取一个目录的内容,测试了一下,返回的结果是一个数组,元素就是文件夹的名字.详细的介绍可以参考这里:http://www.jb51.net/article/58609.htm 还有一个API,rename听名字就是重命名相关的.详细的可以参考这里:http://www.jb51.net

  • shell备份文件、重命名文件、删除指定文件的3个脚本分享

    因为经常会用到shell脚本,所以经常会写一些,但是我从来没有系统的学习过shell脚本,遇到问题,就去看手册,或者google一下,到了一定的程度才发现自己的基础真的好差.下面在系统学习shell时,顺便写了点有用的小脚本. 1,备份目录下面文件 复制代码 代码如下: #!/bin/bash E_BADARGS=65 case $# in  //$#表示转入参数的个数,sh bak.sh ./ .sh 有二个参数./和.sh 0)                     // 参数为空时,提示

  • bat和python批量重命名文件的实现代码

    最近从某网站下载了一批文档,但是文件是用数字串命名的文档(很多图书馆都这样吧),现在我也下载完了这些文件,也有这些文件的列表,就是不能一个一个的把文件给重命名吧所以从网上找了这几个脚本. 一.使用bat脚本(windows系统默认可用) 打开记事本,将这些代码写入记事本,另存为xx.bat文件(注意后缀名,很多小白保存成了xx.bat.txt,因为txt是隐藏的,以为不行) @echo off for /r "d:\pdf" %%a in (*.pdf) do ( for /f &qu

  • PowerShell实现批量重命名文件

    假设你有一个很大的文件夹,里面全是图片,你想对文件夹中图片的名称,按照某个统一的规则进行重命名,本文的脚本会简单进行演示: $i = 0 Get-ChildItem -Path c:\pictures -Filter *.jpg | ForEach-Object { $extension = $_.Extension $newName = 'pic_{0:d6}{1}' -f $i, $extension $i++ Rename-Item -Path $_.FullName -NewName $

  • 用python实现批量重命名文件的代码

    下面是最终代码 (windows下实现的) 复制代码 代码如下: # -*- coding: cp936 -*- import os path = 'D:\\图片\\' for file in os.listdir(path): if os.path.isfile(os.path.join(path,file))==True: if file.find('.')<0: newname=file+'rsfdjndk.jpg' os.rename(os.path.join(path,file),os

  • VBS批量重命名文件并且操作前备份原有文件

    核心函数 '========================================================================== ' ' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0 ' ' NAME: ' ' AUTHOR: Microsoft , Microsoft ' DATE : 2014/7/9 ' ' COMMENT: '批量修改文件夹下对应的所有文件

  • Python基于mediainfo批量重命名图片文件

    案例故事: 大部分带彩色屏幕的终端设备,不管是手机,车机,电视等等,都需要涉及图片的显示, 作为一名专业的多媒体测试人员,我们需要一堆的规范化标准的图片测试文件, 但是现有的图片资源名字命名的很随意比如:IMG_20200325_161111.jpg, 以上命名不能看出图片文件的具体图片编码格式,分辨率等信息, 测试经理要求我进行批量重命名工作,模板如下, 图片编码格式_分辨率_位深度_容器.容器, 例如: JPEG_1920x1080_32bit_jpg.jpg 图片编解码基本知识 图片编码:

  • Win10利用bat文件实现文件与文件夹批量重命名的实践

    目录 bat文件 批量重命名文件夹 批量重命名文件 后记 bat文件 利用Win10的bat文件能够实现垃圾清理.电脑关机等.同样的,使用Win的bat文件能够实现文件与文件夹的批量重命名,这样就免去了通过写一个脚本,或者代码程序来运行.做这个的初衷是在处理深度学习的数据集时,为了增加可识别性,将每一个图片文件重命名,特以博客以记之.参考网上的一些方式以及自己的试坑,最终总结如下. 批量重命名文件夹 在示例中我创建了1005个文件夹,如下图所示 bat文件代码如下,其中第五行是命名,!a!是一个

随机推荐