Shell 批量替換檔名稱

2021-10-05 11:35:35 字數 1090 閱讀 4144

去除特定字元

# 目標:將 2017-01-01.jpg、2018-01-01.jpg 改為 20170101.jpg、20180101.jpg

# 方法:將所有 - 替換為空

done

中間插入字元

# 目標:將 book01.txt、*****02.txt 改為 book-01.txt、*****-02.txt

# 方法:用分組匹配分別獲取待插入位置兩側的字串,再通過反向引用實現替換

for file in `ls | grep .txt`

do newfile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'`

mv $file $newfile

done

要解決這個問題,我們可以將 ifs(內部字段分隔符)設定為換行符 \n,這樣一來,for 迴圈就會按行來獲取變數的值,確保每次獲取的確實是乙個完整的檔名。

# 設定 ifs 變數的命令需要放在 for 迴圈之前:

ifs=$'\n'

for file in `ls`

do ...

done

例如,將所有大於1m,且字尾為txt或jpg的檔案,由形如 book_20170101.txt、image_20170101.jpg 的檔案改名為 20170101-book.txt、20170101-image.jpg,**如下:

shell指令碼批量修改檔名稱

示例 filename home mnt test.txt 用 分別替換獲得不同的值 拿掉第一條 及其左邊的字串 home mnt test.txt 拿掉最後一條 及其左邊的字串 test.txt 拿掉第乙個 及其左邊的字串 test.txt 拿掉最後乙個 及其左邊的字串 txt 拿掉最後條 及其右...

批量修改檔名稱

批量修改檔名稱時可以利用批處理bat來寫,公式為 ren空格原檔名稱空格新檔名稱 以下講解將含有相同內容的檔名稱改為只含有不同內容的名稱。為了構成這個公式,首先要提取原檔名稱,可以寫bat檔案dir b mp4 b.txt 即可讀出以.mp4位字尾的檔名稱,字尾可修改,儲存位置為b.txt,儲存格式...

批量修改檔名稱

方法 步驟 2 滑鼠左鍵點選,開始 執行 在對話方塊中輸入字母 cmd 進入dos模式 如下圖所示。在dos模式輸入命令列 cd c pic 然後回車,再輸入命令列 dir b rename.xls 如下圖所示,可將資料夾中的檔名在rename.xls檔案中列出。小貼士 有的時候,你的計算機正處於中...