批量給檔案重新命名

2021-10-18 04:09:53 字數 1442 閱讀 8944

linux下檔案重新命名可以通過兩個命令完成mvrename

mv: 直接執行可以進行單個檔案的重新命名,如 mv old_name.txt new_name.txt

rename: 預設支援單個檔案或有固定規律的一組檔案的批量重新命名,比如:

touch ysx_a_1.fq.gz ysx_a_2.fq.gz ysx_b_2.fq.gz ysx_b_1.fq.gz

把檔名中的易生信(ysx)改為易漢博 (ehbio)

#rename '被替換文字' '要替換成的文字' 操作物件

rename 'ysx' 'ehbio' *.gz

ehbio_a_1.fq.gz ehbio_a_2.fq.gz ehbio_b_1.fq.gz ehbio_b_2.fq.gz

再比如:

rename 'fq' 'fastq' *.gz

ehbio_a_1.fastq.gz ehbio_a_2.fastq.gz ehbio_b_1.fastq.gz ehbio_b_2.fastq.gz

不同作業系統,rename的使用方法略有不同。印象中:

在centos都是上面的語法 rename old new file_list

在ubuntu都是下面的語法 rename s/old/new/ file_list

man rename檢視其具體使用方法

但有時,需要重新命名的檔案不像上面那樣有很清晰的模式,直接可以替換,需要多幾步處理獲得對應關係。

假如已經有對應關係

使用mv

檔案:name.map.txt ehbio_a_1.fastq.gz ehbio_a_2.fastq.gz ehbio_b_1.fastq.gz ehbio_b_2.fastq.gz

對應關係:cat name.map.txt儲存到檔案裡

a control

b treatment

awk '' name.map.txt > rename.sh

執行**bash rename.sh

使用rename

awk '' name.map.txt

注意:重新命名兩側加下劃線, 這也是我們做匹配時常需要注意的,盡量限制讓匹配更準確。否則,fastq中的a也會被替換掉。

另外,window下使用git for windows應該也可以實現對應的操作(windows輕鬆實現linux shell環境:gitforwindows)

批量重新命名檔案

windows xp下 比如 ren jpe jpg linux下 在多數系統中,rename是乙個perl指令碼,rename的使用也支援perl的正規表示式。rename的基本語法是 rename perl表示式 檔名perl表示式用於修改檔名,如s開頭的串表示替換。舉幾個比較實用的例子 刪除所...

批量重新命名 檔案批量重新命名和同名檔案複製

近期在給一家影樓做資料維護的時候,碰到乙個令他們糾結的問題。原因是這樣的,很多影樓現在要求數碼人員用原片修,而不能用磨過皮的 精修,因為磨過皮的 再修的話,會影響 的層次感。數量少的時候,數碼部手工操作還方面,根具分片後的 然後到原始片裡把 一張一張的選出來,再製作。但旺季忙的時候,有些數碼師就偷懶...

檔案批量重新命名

今天遇到乙個問題,有一批檔案,需要修改字尾名,還要將前面的部分字元刪除,首先想到重新命名命令 ren 試了幾次,無法實現需求,只能,批處理了。在網上查了一下,寫了個,將字尾為.doc.doc的該為只有乙個.doc echo off setlocal enabledelayedexpansion 開啟...