2023年7月26日发(作者:)
linuxmv相同后缀名⽂件,linux5~find+awk+xrags+mv批量重命名⽂件2017.01.11很多时候我们需要在⼀个⽂件夹内把⽂件重命名,如果很多,并且有⼦⽂件夹的情况这样⼿动操作⽐较复杂。所以我们今天⽤linxu⾥⾯的find +awk+xargs+mv这个⼏个命令组合假如我们需要替换的⽂件后缀名为.xxx,我们想替换成.ip那么我们分解命令逐个记录:1:查找到.xxx后缀的⽂件命令: find . -name *.xxx解释: find 后的第⼀个参数为操作的⽂件夹,.的话表⽰当前⽬录,如果其他⽬录请直接写⽬录路径。接下来的-name为指定⽤后⾯的字符串匹配名称,还有其他⽐如创建时间匹配等待。 另外⼀个常⽤的命令就是-type 这个指定搜索的类型 ⽐如 find . -type d -name .xxx 就是搜⽂件夹名称为.xxx2:提取⽂件名命令:awk -F "." '{print $2}'解释:awk的命令是⽤来处理字符串的,这⾥仅仅使⽤简单的-F 命令,也就是字符串分割。 -F有两个参数,⼀个是分隔符,这⾥⽤.为分隔符,另⼀个是prog,就是分割后的处理。这句的意思就是把字符串⽤.分割,并且把分割后的第$2段输出。这⾥有个注意的地⽅就是$2,为什么是$2?因为find命令查找出来的结果是‘./’。也就是有两个'.' 所以取第⼆段。如果取完整段⽤$0,更多细节请参看⽹上⽂档3:重命名⽂件命令:mv ./ ./解释:mv命令可以做移动,也可以重命名,就看前后的类型。如果后⾯是⽂件夹,则移动,后⾯是⽂件则重命名。这⾥不多更多解释。我们⽤以上⼏个命令结合xargs管道连接起来,最终的命令为:find . -name '*.xxx'| awk -F "." '{print $2}'|xargs -I'{}' mv ./{}.xxx ./{}.ip这⾥需要解释的就是xargs,这个函数是把管道⼊⼝的命令进⾏逐条处理,⽤-I'{}'指定逐条的字符串为{},然后⽤mv进⾏重命名这样我们就实现了整个功能,⽐写脚本更简单。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690365064a338707.html
评论列表(0条)