1. 程式人生 > >Linux下批量修改檔案字尾名及shell指令碼中匹配檔名稱變數寫法

Linux下批量修改檔案字尾名及shell指令碼中匹配檔名稱變數寫法

rename .txt.COMPLETED  .txt   *.txt.COMPLETED

為了完整起見,我這裡再用一些例子加以說明 ${ } 的一些特異功能:
假設我們定義了一個變數為:
file=/dir1/dir2/dir3/my.file.txt
我們可以用 ${ } 分別替換獲得不同的值:
${file#*/}:拿掉第一條 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt
${file##*/}:拿掉最後一條 / 及其左邊的字串:my.file.txt
${file#*.}:拿掉第一個 . 及其左邊的字串:file.txt
${file##*.}:拿掉最後一個 . 及其左邊的字串:txt
${file%/*}:拿掉最後條 / 及其右邊的字串:/dir1/dir2/dir3
${file%%/*}:拿掉第一條 / 及其右邊的字串:(空值)
${file%.*}:拿掉最後一個 . 及其右邊的字串:/dir1/dir2/dir3/my.file
${file%%.*}:拿掉第一個 . 及其右邊的字串:/dir1/dir2/dir3/my

記憶的方法為:

# 是去掉左邊(在鑑盤上 # 在 $ 之左邊)

% 是去掉右邊(在鑑盤上 % 在 $ 之右邊)

單一符號是最小匹配﹔兩個符號是最大匹配。


${file:0:5}:提取最左邊的 5 個位元組:/dir1
${file:5:5}:提取第 5 個位元組右邊的連續 5 個位元組:/dir2
我們也可以對變數值裡的字串作替換:
${file/dir/path}:將第一個 dir 提換為 path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:將全部 dir 提換為 path:/path1/path2/path3/my


相關推薦

Linux批量修改檔案字尾shell指令碼匹配檔名變數寫法

rename .txt.COMPLETED  .txt   *.txt.COMPLETED 為了完整起見,我這裡再用一些例子加以說明 ${ } 的一些特異功能: 假設我們定義了一個變數為: fi

linux 批量修改檔案字尾

今天遇到的一個問題,要將一批jpg檔案字尾名更改為png,憑感覺能用awk指令進行修改,就進行了嘗試。 想到的思路是:先列舉出檔名稱,再用awk對檔名稱進行處理分割,最後將字尾名進行修改。 首先列舉出檔名稱,得到如圖: 之後考慮獲取名稱,如“abad.jpg”,再將

Linux批量修改文件(rename)

批量修改 rename1.rename命令批量修改文件名, 其實Linux下可以使用別的辦法來批量修改文件名, 不過rename實在太方便了比如把所有的表為cdb1_* 修改為cdb_*的在本目錄下只需要# rename ‘cdb1‘ ‘cdb‘ *以前都是寫個for循環來做...想想多傻啊, 呵呵ren

c++如何批量修改檔案字尾

1、問題描述 在日常的應用中,很多時候會用到批量修改圖片的字尾名。比如將1.bmp修改為1.jpg。或許我們用格式工廠或者批處理檔案.bat課以輕而易舉的做到。這裡暫不討論。本篇文章僅僅對如何用c

windows批量修改檔案字尾

windows中經常遇到批量修改某些檔案的字尾問題,進行簡單加密/解密,下面是比較簡單幾種方法: N1: 1.新建一個.txt文字檔案2.開啟在裡寫入 ren *.avi *.abc注:ren和a

ubuntu批量修改後綴批量重新命名

1、批量修改後綴名 rename   's/\.JPG/.gif/'    *.JPG (注意:在單引號中的最後一個'/'符號不能少!) 其中.JPG是要修改檔案的字尾名,.gif是你要修改成的字尾名。*.JPG是指當前目錄下的所有以jpg為字尾的檔案。 使用時先在

Linux批量修改後綴

sources ron sed pre one rep oot source roo 1、用find和xargs添加後綴名 [[email protected] yum.repos.d]# ls -ltr total 32 -rw-r--r--. 1 r

關於linux系統批量修改文件和後綴

linux 字符串 總會遇到遇到處理文件的問題,比如文件後綴修改,以前都是寫shell,後來發現有個更簡單的方法rename1,在centos 下是用c 寫的 rename用法: a.txt 修改為 a.cc rename txt cc *.txt

Linux批量修改文件文件夾所有者權限

批量修改 修改文件 topic 文件 lan xid href sta chm Linux下批量修改文件及文件夾所有者及權限需要使用到兩個命令,chmod以及chown 例:對/opt/Oracle/目錄下的所有文件與子目錄執行相同的權限變更: chmod -R 700 /

複製一個資料夾所有檔案(包括子資料夾)並修改檔案字尾 java實現加密文件unlock

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.i

windows批量修改文件

目錄 超過 ans 一個 修改文件名 cal 修改 .... dexp 工作中遇到需要批量按規則改名的問題,查了一下使用批處理能快速解決問題,記錄下來 建立一個bat批處理文件rename.bat,內容如下: @echo offset a=00set b=10setloca

JAVA實現的批量更改檔案字尾的程式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

linux批量修改檔名之rename

目錄: rename命令的幫助手冊 比如將資料夾下的gif檔案都重新命名為jpg檔案 rename命令的幫助手冊 $ man rename RENAME(1) Perl Programmers R

Windows bat指令碼遍歷資料夾並批量修改檔案字尾

這個需求非常常見,例如批量轉換檔案格式等等,程式碼如下: @echo off ::對變數動態捕獲擴充套件變化 set strpdf=pdf set strtxt=txt SETLOCAL ENABLE

windows 批量修改檔案字尾

有時候我們批量下載圖片的時候沒有檔案字尾: 雖然只是改字尾,也要記得備份~ CMD命令列方法 (WindowsPowerShell沒用明白……) 1.按下win+r健,輸入cmd,回車來開啟命令列 預設是c盤下的使用者資料夾。 2.輸入 cd  /

Linux批量刪除檔案

2018年10月31日 16:17:38 分兩大類 閱讀數:3 標籤: Linux

python 批量修改檔案字尾

#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Dec 19 18:53:47 2018 @author: bdf """ import os # 列出當前目錄下所有的檔案 files = os.listdir(

Linux批量修改檔名

最近在Linux下裝上了Steam,裝了一個免費的遊戲Untruned,這遊戲之前在Windows下也玩過還不錯。然而在漢化的過程中上出了一點小問題,這遊戲的語言包分為English和sChinese兩個語言包。放在了目錄下偏偏識別不出來,那我也就只能想辦法了,我使用常用的方

Linux批量修改檔名(rename)

1.rename命令批量修改檔名, 其實linux下可以使用別的辦法來批量修改檔名, 不過rename實在太方便了 比如把所有的表為cdb1_* 修改為cdb_*的 在本目錄下 只需要# rename 'cdb1' 'cdb' * 以前都是寫個for迴圈來做...想想多傻啊, 呵呵 rename還有更多

Python批處理修改檔案字尾

需求:為了寫OJ自動掛題 在這樣的情況下: 1.OJ掛題的需求要求所有的樣例檔案必須要以.in .out形式出現 (原本的資料形式是.txt) 2.並且要把所有的樣例都壓縮到一個壓縮包裡 3.既然支援一件處理檔案 那麼也要處理子目錄下的檔案 更新1:還要過濾掉inpu