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

今天突然间想起昨天有个问题还没动手实践下,就是利用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  //好像不能递归目录

时间: 2024-11-17 23:48:36

Shell脚本批量重命名文件后缀的3种实现_linux shell的相关文章

shell脚本实现拷贝大文件显示百分比的代码分享_linux shell

复制代码 代码如下: #!/bin/sh strace -q -eread cp -- "${1}" "${2}" 2>&1 \ | awk '{     count += $NF     if (count % 10 == 0) {         percent = count / total_size * 100         for (i=0;i<=percent;i++)             printf("="

Shell脚本中判断变量为数字的3种方法_linux shell

方法1:通过expr 计算变量与一个整数值相加,如果能正常执行则为整数,否则执行出错,$?将是非0的值 复制代码 代码如下: expr $args + 0 &>/dev/null 方法2:打印变量通过sed替换的方式,将变量中的数字替换为空,如果执行替换后变量为空,则为整数 复制代码 代码如下: echo $args | sed 's/[0-9]//g' 如果判断负数则再用sed过滤负号 复制代码 代码如下: echo $args | sed 's/[0-9]//g' | sed 's/-/

win7系统下批量重命名文件的方法

  在win7下我们对于同类文件来说,如果想要以数字编号的形式命名文件的话,是无需借助第三方软件即可完成修改的,不过很多不知道如何操作,故此小编为大家带来了Win7如何同时重命名多个文件的方法,需要的用户赶快学习下吧! win7系统下批量重命名文件的方法 1.在保存文件的时候可以采用系统自动分配名字的方法,即保存的时候系统显示的什么名字,就让它默认为什么名字,这样的名字也不会重名,保存起来相当的快. 2.选中文件夹中所有需要重命名的文件,直接按组合键ctrl+a就行,然后按F2,接下来输入希望设

Win7如何批量重命名文件?

  大家在用电脑时,经常会遇到需要批量重命名文件的问题.如果文件不多还好办,不然挨个重命名是很麻烦的事.所以,掌握重命名小技巧还是非常有必要的.下面小编就向大家介绍一下这个简单实用的方法,适用于Win7/Win8.1/Win10系统. 具体步骤如下: 1.全选你想重命名的文件,如下图-- 2.在选中状态的一个文件上点右键,选择重命名,如下图-- 3.一个文件改好新名称后,其他文件依次被序号标记,如下图-- 方法很简单,只不过修改的时候要注意文件排列顺序,以及被修改的"样本文件"排序位置

Python批量重命名文件示例

  Python批量重命名文件方法很简单我们会利用listdir与rename 再加上目录遍历即可实现文件重命令了,下面整理了一些方法. 用到了os的两个接口: 1.列出文件夹中的所有文件(也包含目录) os.listdir(path) Return a list containing the names of the entries in the directory given by path. The list is in arbitrary order. It does not inclu

关于批量重命名文件

不久前,我们软件工程系举行了全系大会.我在大会上做了简短的报告,主题是"学以致用.动手实践".报告期间我说了一个亲身经历:以前校园内U盘病毒肆虐,病毒会把U盘里所有的文本文件加上系统属性和隐藏属性,并添加".tmp"扩展名(例如原文件名为"a.txt",病毒修改为"a.txt.tmp"),然后生成一个和原文件同名的病毒文件.我不幸中招,于是用我所学的知识写了一个小程序,几秒钟就解决了. 原以为它就像插播广告一样随听随忘,不料言

在Linux中对文件进行批量重命名文件的方法

  在Linux中,当你想要改变一个文件名,使用mv命令就好了.然而mv不能使用通配符重命名多个文件.可以用sed.awk或者与xargs结合使用来处理多个文件的情况.然而,这些命令行即繁琐又不友好,并且如果不小心的话还很容易出错.你不会想要撤销1000个文件的错误名吧! 当你想要重命名多个文件的时候,rename 工具或许是最简单.最安全和最强大的命令行工具.这个rename命令实际上是一个Perl脚本,它预安装在所有的现在Linux发行版上. 下面是重命名命令的基本语法. 代码如下: ren

用python实现批量重命名文件的代码_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

使用shell脚本实现ping对应IP所对应的人名(推荐)_linux shell

#!/bin/bash a=(张三 李四 王五 赵六) for i in {0..3} do if ping -c 1 192.168.1. $((${i}+1)) >dev/null 2>&1;then echo $((${i}+1))"号"${a[${i}]}"在线" else echo $((${i}+1))"号"${a[${i}]}"离线" fi done 这串shell代码实现了ping 某个IP