Linux批量修改文件名 linux 查找文件名包含

查看/home下所有子目录的ok.txt并修改成OK.txt

find/home-type f -name "ok.txt" -execrename 'ok.txt' 'OK.txt' {} ;

linux 批量重名名

Linux Shell批量重命名的方法总览


1、删除所有的 .bak 后缀:
rename 's/.bak$//'*.bak

2、把 .jpe 文件后缀修改为 .jpg:
rename's/.jpe$/.jpg/' *.jpe

3、把所有文件的文件名改为小写:
rename'y/A-Z/a-z/' *

4、将 abcd.jpg 重命名为 abcd_efg.jpg:
for var in*.jpg; do mv "$var" "${var%.jpg}_efg.jpg"; done

5、将 abcd_efg.jpg 重命名为 abcd_lmn.jpg:
for var in*.jpg; do mv "$var" "${var%_efg.jpg}_lmn.jpg";done

6、把文件名中所有小写字母改为大写字母:
for var in`ls`; do mv -f "$var" `echo "$var" |tr a-z A-Z`;done

7、把格式 *_?.jpg 的文件改为 *_0?.jpg:
for var in`ls *_?.jpg`; do mv "$var" `echo "$var" |awk -F '_' '{print $1 "_0"$2}'`; done

8、把文件名的前三个字母变为 vzomik:
for var in`ls`; do mv -f "$var" `echo "$var" |sed 's/^.../vzomik/'`;done

9、把文件名的后四个字母变为 vzomik:
for var in`ls`; do mv -f "$var" `echo "$var" |sed 's/....$/vzomik/'`;done

linux下批量修改文件名

0、问题来源,想把一部分文件加上日期序。也就是在文件名称前加上当前的年月日进行输出。
获取日期格式如下
Zianed@ubuntu:~/public_web_sSmO9OUVY1/files/image$date+%Y%m%d
20091112

1、使用find、awk/grep/sed、mv等命令组--合来实现
Ubuntu下

利用awk命令进行制作,操作如下
1)找到需要进行操作的文件名
Zianed@ubuntu:~/public_web_sSmO9OUVY1/files/image$find-name‘*.jpg’-printf%f//n|grep-v^[0-9]|grep-vlogo.jpg
se_platform.jpg
soa1.jpg
soa4.jpg
java_primitive_data_type.jpg
soa3.jpg
soa2.jpg

2)提取文件名,保持文件扩展名不变
Zianed@ubuntu:~/public_web_sSmO9OUVY1/files/image$find-name‘*.jpg’-printf%f//n|grep-v^[0-9]|grep-vlogo.jpg|awk-F‘.’‘{print$1}’
se_platform
Linux批量修改文件名 linux 查找文件名包含
soa1
soa4
java_primitive_data_type
soa3
soa2

3)对文件进行批量替换操作
Zianed@ubuntu:~/public_web_sSmO9OUVY1/files/image$find-name‘*.jpg’-printf%f//n|grep-v^[0-9]|grep-vlogo.jpg|awk-F‘.’‘{print$1}’|
xargs-i{}mv{}.jpg`date+%Y%m%d`{}.jpg
Zianed@ubuntu:~/public_web_sSmO9OUVY1/files/image$ls
20090818a.jpg20090919twitter4.jpg
20090818learn.jpg20091110open_project.jpg
20090819java1.png20091112java_primitive_data_type.jpg
20090819javaseplatformroadmap.gif20091112se_platform.jpg
20090916neiji.jpg20091112soa1.jpg
20090916waiji.jpg20091112soa2.jpg
20090919photo.jpg20091112soa3.jpg
20090919twitter.jpg20091112soa4.jpg
20090919twitter2.jpglogo.jpg
20090919twitter3.jpg

利用nawk命令进行制作,操作如下
1)找到要操作的文件名
Zianed@ubuntu:~/sedcommand$find./-typef|grep“log”|sed-n’s//.////p’
test2.log
test1.log

2)进行文件名更改操作
Zianed@ubuntu:~/sedcommand$ls*.log
test1.logtest2.log
Zianed@ubuntu:~/sedcommand$find./-typef|grep“log”|sed-n’s/.////p’|
nawk‘{oldname=$1;$2=`date+%Y%m%d`$1;newname=$1;print“mv”oldname””newname}’|/bin/sh
nawk:warning:escapesequence`/.’treatedasplain`.’
Zianed@ubuntu:~/sedcommand$ls*.log
test1_test.logtest2_test.log
Zianed@ubuntu:~/sedcommand$

利用sed命令进行制作,操作如下
find/-typef-name“*.sql”|seds//(.*/)/.sql/mv&/1.pls/’|sh

2、编写Shell脚本运行
保存为一个Shell脚本

#!/bin/bash
#script_name:rename_ALL
find./-typef|grep“txt”|sed-n’s//.////p’|nawk‘{oldname=$1;
sub(//./,”_test/.”);
newname=$1;
print“mv”oldname””newname}’|/bin/sh

将上述代码保存为文件rename_ALL
修改脚本的属性,使它能执行:chmodu+xrename_ALL
执行:./rename_ALL

来自网络
看起来很管用,要是能够进行将要改的文件名格式传递进去就更好了。

3、使用rename命令
Zianed@ubuntu:~/public_web_sSmO9OUVY1/files/image$rename–help
Unknownoption:help
Usage:rename[-v][-n][-f]perlexpr[filenames]

manrename发现,
“rename”renamesthefilenamessuppliedaccordingtotherulespecifiedasthefirstargument.
TheperlexprargumentisaPerlexpressionwhichisexpectedtomodifythe$_stringinPerlforatleastsomeofthefilenamesspecified.Ifagivenfilenameisnotmodifiedbytheexpression,itwillnotberenamed.Ifnofilenamesaregivenonthecommandline,filenameswillbereadviastandardinput.
Forexample,torenameallfilesmatching“*.bak”tostriptheextension,youmightsay
rename’s//.bak$//’*.bak
Totranslateuppercasenamestolower,you’duse
rename‘y/A-Z/a-z/’*

命令格式:
rename[-v][-n][-f]perlexpr[files]
perlexpr是一种Perl脚本格式的正则表达式。
files文件名通配符
参数:
-v,–verbose
Verbose:printnamesoffilessuccessfullyrenamed.
详细模式:打印成功更改的文件名列表
-n,–no-act
NoAction:showwhatfileswouldhavebeenrenamed.
测试模式:并不真正的执行命令,而只是显示哪些文件名应该怎么进行更改,用于测试模式。
-f,–force
Force:overwriteexistingfiles.
强制模式:在更改文件名,如果更改后的文件已经存在时覆盖已经存在的文件。

Zianed@ubuntu:~/public_web_sSmO9OUVY1/files/image$ls
20090819java1.png200909v9twitter4.jpg
20090819javaseplatformroadmap.gif2009vvv0epen_preject.jpg
200908v8lerrn.jpg2009vvv2jrvr_primitive_drtr_type.jpg
200908v8r.jpg2009vvv2se_plrtferm.jpg
200909v6neiji.jpg2009vvv2ser2.jpg
200909v6wriji.jpg2009vvv2ser3.jpg
200909v9phete.jpg2009vvv2ser4.jpg
200909v9twitter.jpg2009vvv2serv.jpg
200909v9twitter2.jpglege.jpg
200909v9twitter3.jpg

将*.jpg文件名中的09v9改为0919
Zianed@ubuntu:~/public_web_sSmO9OUVY1/files/image$rename’s/09v9/0919/’*.jpg
Zianed@ubuntu:~/public_web_sSmO9OUVY1/files/image$ls
20090819java1.png200909v6wriji.jpg
20090819javaseplatformroadmap.gif2009vvv0epen_preject.jpg
200908v8lerrn.jpg2009vvv2jrvr_primitive_drtr_type.jpg
200908v8r.jpg2009vvv2se_plrtferm.jpg
20090919phete.jpg2009vvv2ser2.jpg
20090919twitter.jpg2009vvv2ser3.jpg
20090919twitter2.jpg2009vvv2ser4.jpg
20090919twitter3.jpg2009vvv2serv.jpg
20090919twitter4.jpglege.jpg
200909v6neiji.jpg

rename的典型应用:
0.批量更改文件扩展名
$rename’s//.txt//.ext/’*

1.批量删除文件扩展名
$rename’s//.txt//’*

2.批量添加文件扩展名
$rename’s/$//.txt/’*

3.按自己的方式批量重命名文件
$rename’s/(/d)/第$1章/’*
$renames/_/-/*.jpg#修改所有的包含_的.jpg文件中的_为-


from:http://hi.baidu.com/suping/blog/item/a6d018172eb740164a90a71e.html

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/267264.html

更多阅读

BT文件下载文件名中包含违规内容怎么办? 文件名包含违规

BT文件下载文件名中包含违规内容怎么办?——简介最近在网上找到一些种子想用同学给我的VIP迅雷号来下载,可是老是提示“文件名中包含违规内容...”,怎么办呢?我这就教你怎么解决。BT文件下载文件名中包含违规内容怎么办?——工具/原料

怎么批量下载MP3歌曲 mp3歌曲名字批量修改

和许多音乐发烧友一样,本人也是非常喜欢音乐的。不管任何类型的音乐都比较喜欢,因此,对于下载歌曲也是有自己的见解。下面来看看怎么批量下载MP3歌曲。其实想要批量下载歌曲,其实非常的简单,方式也比较多,一般来讲,许多音乐播放器

怎么更改文件格式 win10怎么修改文件格式

怎么更改文件格式——简介在Windows操作系统中文件的格式由其文件名来确定,更准确的说,是由文件名中的后辍来决定。例如常见的Word文档格式,其后辍名为“*.doc”或者“*.docx”。修改文件格式常用的方法有直接修改文件名后辍法和利用软

迅雷文件名包含敏感词汇怎么办 迅雷 文件名中包含

迅雷文件名包含敏感词汇怎么办——简介迅雷下载文件开通高速通道时总是出现文件名包含敏感词汇,导致无法开启高速通道,这个问题是有办法解决的,如果是资源被举报,这个方法没办法解决,可以参考下面的百度经验解决。迅雷资源被举报无法下

美图秀秀如何批量修改图片尺寸 mac批量修改图片尺寸

美图秀秀如何批量修改图片尺寸——简介图片大小不一,想把图片都设置成一个大小,但是太多,手动操作很费力气,如何将图片批量修改成同一尺寸呢?美图秀秀如何批量修改图片尺寸——工具/原料美图秀秀美图秀秀如何批量修改图片尺寸——方法/

声明:《Linux批量修改文件名 linux 查找文件名包含》为网友攻你心分享!如侵犯到您的合法权益请联系我们删除