Ubuntu 重命名文件
生活随笔
收集整理的這篇文章主要介紹了
Ubuntu 重命名文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在linux下修改文件的名字有很多種方法,常用的有mv和rename。
一,mv
mv fromfile tofile
如把文件a.txt得命名為b.txt,可以是mv a.txt b.txt。
mv一次只能重命名一個文件,而且,它是移動命令。如果tofile已經存在的話,會直接裝原文件覆蓋,從而造成文件的丟失。當然有選項可以對已存在的文件進行提示,還是決定看看rename吧。
例子:將目錄A重命名為B
mv A B
例子:將/a目錄移動到/b下,并重命名為c
mv /a /b/c
二 rename
本文介紹rename命令完成重命名批量文件語法,介紹了rename用到的Perl的替換和轉化形式,并給出常用正規表達式。最后給出幾個實例。
偶爾會遇到需要重命名批量文件,最典型的例子就是數碼相機的相片,在Ubuntu可以用工具Purrr或者PerfixSuffix實現該功能,但重命名批量文件并不常用,為了偶爾的一次操作,安裝工具(可能通過Ubuntu Software Center或者sudo apt-get install安裝),加之圖形化界面操作也比較費時間。事實上,rename命令就可以出色完成該工作。 一、rename命令 Linux的 rename 命令有兩個版本(C語言和Perl語言),早期的Linux發行版基本上使用的是C語言版本,現在系統幾乎都是Perl語言版本了(支持正則處理,功能更強大)[1]。可以通過命令man rename打開rename幫助文檔查看版本,如果第一行內容如下,則是Perl語言版本。
先舉個例子來感受下,比如將當前目錄下所有*.nc文件中Sam3替換成Stm32,命令如下:
二、Perl正則表達式 2.1 三種形式[2] 匹配:m/<regexp>/? (可以省略m,直接寫成/regexp/) 替換:s/<pattern>/<replacement>/? 轉化:tr/<pattern>/<replacement>/ 博文[3]給出了8種模式,rename命令常用到替換和轉化兩種(用匹配也沒意義)。轉換跟替換不同,替換是將replacement整個字符串替換pattern字符串,而轉換則是用replacement逐個字符替換pattern逐個字符,結果依賴于replacement與pattern字符個數(見下述分析)。 (1)替換 替換表達方式如下[3],還有一系列參數,貌似不怎么用得著。
2.2 常用模式 正則表達式中的一些常用模式pattern[2]: x? 匹配 0 次或一次 x 字符串 x* 匹配 0 次或多次 x 字符串,但匹配可能的最少次數 x+ 匹配 1 次或多次 x 字符串,但匹配可能的最少次數 .* 匹配 0 次或一次的任何字符 .+ 匹配 1 次或多次的任何字符 {m} 匹配剛好是 m 個 的指定字符串 {m,n}匹配在 m個 以上 n個 以下 的指定字符串 {m,} 匹配 m個 以上 的指定字符串 [] 匹配符合 [] 內的字符 [^] 匹配不符合 [] 內的字符 [0-9]匹配所有數字字符 [a-z]匹配所有小寫字母字符 [^0-9]匹配所有非數字字符 [^a-z]匹配所有非小寫字母字符 ^ 匹配字符開頭的字符 $ 匹配字符結尾的字符 \d 匹配一個數字的字符,和 [0-9] 語法一樣 \d+ 匹配多個數字字符串,和 [0-9]+ 語法一樣 \D 非數字,其他同 \d \D+ 非數字,其他同 \d+ \w 英文字母或數字的字符串,和 [a-zA-Z0-9] 語法一樣 \w+ 和 [a-zA-Z0-9]+ 語法一樣 \W 非英文字母或數字的字符串,和 [^a-zA-Z0-9] 語法一樣 \W+ ? 和 [^a-zA-Z0-9]+ 語法一樣 \s ? ?空格,和 [\n\t\r\f] 語法一樣 \s+ ? 和 [\n\t\r\f]+ 一樣 \S ? ?非空格,和 [^\n\t\r\f] 語法一樣 \S+ ? 和 [^\n\t\r\f]+ 語法一樣 \b ? ?匹配以英文字母,數字為邊界的字符串 \B ? ?匹配不以英文字母,數值為邊界的字符串 a|b|c 匹配符合a字符 或是b字符 或是c字符 的字符串 abc ? 匹配含有 abc 的字符串
三、實例 3.1?將所有*.nc文件中Sam3替換成Stm32
總結
以上是生活随笔為你收集整理的Ubuntu 重命名文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BIM模型文件下载——某公司办公综合楼项
- 下一篇: 人工智能的局限性--王垠