成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

教你三招快速文件批量重命名方法

系統 Linux
本文良許將介紹三種最基本的文件重命名方法,因為比較基本,所以老司機可以到此為止。

在我們的工作生活中,不管是程序員還是非程序員,我們都會遇到過一個需求,那就是對一堆的文件進行重命名。在Windows下有很多優秀的軟件可以幫助我們完成這個需求,而在Linux環境下,我們可以簡單敲一些代碼就可以完成這個需求。

本文良許將介紹三種最基本的文件重命名方法,因為比較基本,所以老司機可以到此為止。

[[341695]]

1. rename命令

顧名思義,rename命令就是用來進行重命名文件名的。rename命令有非常強大的功能,我們可以用它來實現各種各樣復雜的文件名的修改。但是,本文只介紹它最最基本的功能,后期再更新rename其它強大的重命名功能。rename的最基本的格式如下:

  1. rename 源字符串 目標字符串 文件 

其中,源字符串表示原文件名需要替換的字符串,可以是原文件名的全部或部分;目標字符串就是想要替換成的字符串;文件就是需要更改文件名的文件列表,可以是一個或多個。

現假如目錄下有一堆 atb_mod_01.cpp,atb_mod_02.cpp,atb_mod_03.cpp,atb_mod_04.cpp 等形式的文件,我們的需求是將文件名中的 mod 改成 adb,那么完成這個需求的命令如下:

  1. [alvin@VM_0_16_centos exp3]$ ls 
  2. atb_mod_01.cpp  atb_mod_02.cpp  atb_mod_03.cpp  atb_mod_04.cpp[alvin@VM_0_16_centos exp3]$ rename mod adb *[alvin@VM_0_16_centos exp3]$ lsatb_adb_01.cpp  atb_adb_02.cpp  atb_adb_03.cpp  atb_adb_04.cpp 

2. mv命令配合for循環方式

假如我們現在有一堆 .txt 文件,我們想將它們的后綴改成 .cpp。先來看完整的代碼:

  1. #!/bin/bash 
  2. for name in `ls *.txt` 
  3. do 
  4.     mv $name ${name%.txt}.cpp 
  5. done 

我們都知道,在Linux里重命名是用 mv 命令,那批量重命名自然會想到用循環語句嵌套mv命令。

在這里,我們用 ls *.txt 將當前目錄下所有的txt文件全部列出來,然后逐個放在name變量里去循環操作。

在循環體里,我們使用mv命令進行重命名。這里我們使用 ${name%.txt} 這種字符串處理方式,表示從name尾部開始刪除與 .txt 匹配的最小部分,并返回剩余部分。之后,再加上 .cpp 后綴。通過這種操作,我們就可以將文件名后綴從.txt改為.cpp。最后我們用mv命令將這個文件名真正改過來。

3. sed命令配合for循環方式

假如我們現在有一堆文件,文件名格式是 test01.txt,test02.txt,test03.txt,test04.txt 也就是前半部分是英文,后半部分是數字。我們現在想將文件名改成 test-01.txt 這種形式。這次,我們用sed命令來完成這個需求。

我們還是先來看看完整的代碼。

  1. #!/bin/bash 
  2. for file in `ls *.txt` 
  3. do 
  4.      newFile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'` 
  5.      mv $file $newFile 
  6. done 

前面一樣用 ls \*.txt 來獲取所有的 .txt 文件。之后再用echo命令將其順次輸出,作為sed命令的輸入。

接下來,到達關鍵部分了。乍一看sed的命令可能有點可怕,但老司機早已習以為常了。反引號里的內容其實是這樣的基本結構:

  1. s/ 原字符串 / 替代的字符串 / 

這里我們用到了分組匹配,也就是用括號按照一定的正則表達式將原字符串進行分組,后面再用 \1,\2,\3…… 來引用前面的分組,從而在替代的字符串里拼湊成相應的格式。

前文已講述,原文件名是由前部分英文及后部分數字所構成的,英文可以用 [a-z]+ 表示,數字可以用 [0-9]+ 表示。注意不要忘記加號,表示前面字符的若干重復。然后,我們用\1、\2分別引用前面的對應部分,再用橫桿連起來,于是就成了這樣:

  1. s/([a-z]+)([0-9]+)/\1-\2/ 

因為在不同的Shell里,括號及加號可能會有不同的含義,所以前面要再加一個轉義符,于是就成了前面所見到的樣子。

再之后,同樣使用mv命令完成重命名動作。

本文授權轉載自公眾號「良許Linux」。良許,世界500強外企Linux開發工程師,公眾號里分享大量Linux干貨,歡迎關注!

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2024-06-19 10:53:45

2010-03-09 15:23:30

Linux批量重命名

2009-12-22 15:28:51

Linux批量重命名文

2011-07-26 18:06:00

SQL Server數批量重命名

2010-11-19 13:48:18

2010-03-03 16:11:01

Linux ubant

2021-12-26 18:32:26

Python Heic 文件

2019-04-18 10:35:55

Windows 10重命名文件夾

2009-10-21 14:36:03

VB.NET批量重命名

2011-03-04 09:48:21

PureFTPd

2010-12-08 11:46:34

職場

2010-10-15 10:54:29

英文面試

2022-07-05 08:23:21

網絡攻擊網絡安全

2018-06-25 13:10:16

Linux復制重命名

2022-02-09 08:03:26

安全企業SOC

2021-06-09 10:50:38

OneDNS微步在線

2025-04-29 08:04:10

DeepSeek私有化部署數字化轉型

2017-05-18 15:30:29

2019-06-25 08:04:32

TCPIP網絡故障

2019-11-11 10:20:10

Linux重命名命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 奇色影视 | 亚洲精彩免费视频 | 久久久久国产一区二区三区四区 | 国产伦精品一区二区三区视频金莲 | 亚洲精品在线观看视频 | 视频一区在线播放 | 日韩欧美视频网站 | 中文字幕一区二区三区精彩视频 | 国产激情一区二区三区 | av手机在线看 | 欧美操操操 | 久久一及片 | 久久久激情 | 日韩成人性视频 | 日本成人午夜影院 | 宅女噜噜66国产精品观看免费 | 日韩在线观看 | 一区二区三区四区在线视频 | 精品久久久久久久人人人人传媒 | 国产激情视频在线 | 日韩毛片在线观看 | 欧美黄色一区 | 亚洲国产黄色av | 综合一区二区三区 | 色综合av| 久久免费视频网 | www.久久| 欧美精品一区在线 | 精品影院 | 欧美激情五月 | 成人av观看 | 久久av综合 | 国产精华一区 | 亚洲午夜网 | 国产精品日韩一区二区 | 男人av在线播放 | 精品视频在线免费观看 | 九九热在线精品视频 | 日韩字幕 | 亚洲一区成人 | 中文字幕乱码一区二区三区 |