linux下檔案重新命名可以通過兩個命令完成mv和rename。
mv: 直接執行可以進行單個檔案的重新命名,如 mv old_name.txt new_name.txt不同作業系統,rename的使用方法略有不同。印象中: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
在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 開啟...