1. 程式人生 > >shell指令碼:批量修改檔名(刪除檔名中字元)

shell指令碼:批量修改檔名(刪除檔名中字元)

上一篇寫過批量修改檔名(檔名中新增字元),工作中還存在這樣的需求,批量修改檔名,刪除檔名中的某些字元;

舉例如下:批量改名,刪除檔名中多餘字元

目錄下檔名為如下,要求去掉_finished。

stu_102999_1_finished.jpg

stu_102999_2_finished.jpg

stu_102999_3_finished.jpg

stu_102999_4_finished.jpg

stu_102999_5_finished.jpg

可以實現的方法有很多種:

方法一:for迴圈結合sed替換

[[email protected] ~]$ for file in `ls *.jpg`;do mv $file `echo $file|sed 's/_finished//g'`;done;

方法二:ls結合awk,輸出交給bash執行

[[email protected] ~]$ ls *.jpg |awk -F "_finished" '{print "mv "$0" "$1$2""}'|bash

實際執行的命令如下,以_finished作為分隔符,mv及變數 需要加雙引號

[[email protected] ~]$ ls *.jpg |awk -F "_finished" '{print "mv "$0" "$1$2""}'
mv stu_102999_1_finished.jpg stu_102999_1.jpg
mv stu_102999_2_finished.jpg stu_102999_2.jpg
mv stu_102999_3_finished.jpg stu_102999_3.jpg
mv stu_102999_4_finished.jpg stu_102999_4.jpg
mv stu_102999_5_finished.jpg stu_102999_5.jpg

方法三:rename改名

[[email protected] ~]$ rename "_finished" "" *.jpg

spacer.gif

方法四:for迴圈加變數部分擷取

[[email protected] ~]$ for file in `ls *.jpg`;do mv $file `echo ${file%_finished*}.jpg`;done;

不使用echo也可以實現

[[email protected] ~]$ for file in `ls *.jpg`;do mv $file ${file%_finished*}.jpg;done;

更改後結果如下:

stu_102999_1.jpg
stu_102999_2.jpg
stu_102999_3.jpg
stu_102999_4.jpg
stu_102999_5.jpg


//-----------------------------------------------------------------------------------

將以_singed結尾的apk,去掉這個_signed。

for file in `ls *.apk`;do mv $file `echo $file|sed 's/_signed//g'`;done;


相關推薦

shell指令碼批量修改檔名(刪除檔名字元)

上一篇寫過批量修改檔名(檔名中新增字元),工作中還存在這樣的需求,批量修改檔名,刪除檔名中的某些字元; 舉例如下:批量改名,刪除檔名中多餘字元 目錄下檔名為如下,要求去掉_finished。 stu_102999_1_finished.jpg stu_10

shell指令碼批量修改檔名

指令碼內容如下(帶#的行不會執行,是批註): #!/bin/bash #執行指令碼時,需要給指令碼新增位置引數 #指令碼名 txt doc(可以將 txt 的副檔名修改為 doc) #指令碼名 doc jpg(可以把 doc 的副檔名修改為 jpg) for i

python指令碼程式設計批量修改指定目錄內檔名

有的時候經常用到這個功能,批量修改視訊或者圖片的名字,按照數字編號等等,自己用python指令碼解決,輕量級又方便。 簡單版 對單個目錄下檔案字尾名 demo.py #coding:ut

應用批量修改檔名,學生管理系統(檔案版)

<1>執行過程演示 執行程式之前 執行程式之後 <2>參考程式碼 #coding=utf-8 # 批量在檔名前加字首 import os funFlag = 1 # 1表示新增標誌 2表示刪除標誌 folderName = './renam

python 批量修改圖片的檔名

# -*- coding: cp936 -*- import os ##輸入新的檔名 newname = raw_input("請輸入新的圖片名:") newname = newname.strip() if newname != '': ##獲取當前資料夾的路徑

shell腳本 批量修改文件名後綴的腳本

don 新的 什麽 操作 原因 code 修改 修改文件 chmod 實驗素材:[root@sv7 test]# ls //此目錄下包含全是 .txt結尾的文件,要求全部換成 .doc結尾1.txt 2.txt 3.txt 4.txt 5.txt 編寫腳本[r

十、字典(上)什麼是字典及如何訪問、新增、修改刪除字典的值

文章目錄 (一)、什麼是字典 (二)、訪問字典中的值 (三)、在字典中新增鍵 - 值對 (四)、修改字典中的值 (五)、刪除字典中的值

shell指令碼awk和sed

awk 和sed     cut [選項] 檔名   預設分隔符是製表符     選項:         -f 列號:    提取第幾列 &

shell指令碼函式以及除錯

自定義函式      [ function ] funname [()]      {        <程式>      }    &nb

shell指令碼流程控制語句

if/else 命令連線符: 單個分支if條件語句 if[ 條件判斷 ] then <程式> fi 或者 if[ 條件判斷 ]; then <程式> fi 多分支 if[ 條件判斷 ]; then <程式> el

shell指令碼命令

命令連線符 ;表示不管前面是否執行成功都要執行 &&表示前面執行成功才執行後面 ||表示前面執行失敗才執行後面 read命令 read [選項] 值 read -p(提示語句) -n(字元個數) -t(時間秒) -s(不顯示) 運算子 expr 3 +

shell指令碼變數

首行:#!/bin/bash #!符號能夠被核心識別成為一個指令碼的開始,這一行必須位於指令碼的首行 註釋:# 除去第一行的# 內容:可執行結構和內容 建立檔案的方式: touch echo “” > first.sh 注:向檔案輸入””中的內容 > 是覆蓋

Linux 指令碼實現批量新增和刪除普通使用者

(1)Linux中用指令碼實現批量新增和刪除普通使用者 https://blog.csdn.net/qq_38038143/article/details/71655771 (2)Linux————Linux下批量建立使用者並設定密碼(shell指令碼) https://blog.csd

shell指令碼統計分析 /home/ 目錄使用者磁碟使用情況

 一、統計單臺機器 /home/ 目錄下磁碟空間使用 top3 的使用者 common.sh 指令碼用於統計 /home/* 目錄下儲存空間 top3 的使用者。 du -sb /home/* |sort -nr |head -n 3  #單位為B 二、統計分析多臺分散式機器上 /h

十、字典與 set(上)什麼是字典及如何訪問、新增、修改刪除字典的值

(一)、什麼是字典 字典:字典是放在花括號中一系列的鍵-值表示 # This is a dict student_0 = {'name': 'zhangsan', 'age': '20'} 冒號

一個簡單的shell指令碼一鍵部署tomcat及釋出簡單程式指令碼

測試環境中一鍵部署的一個小指令碼,這裡記錄下,方便想聯絡的人進行參考 環境介紹: 作業系統cos7.4 jdk版本:1.8 中介軟體服務版本:tomcat7.0.75 ——————————————以下是指令碼內容—————————————————————————

一個簡單的shell指令碼weblogic日誌按天生成(日誌壓縮)

編寫目的: 在實際工作中,由於生產環境在出現問題的時候,中介軟體服務會出現大量的報錯日誌,若日誌增長量極大的情況下,會出現磁碟空間被寫滿的情況而導致宕機,為了防止此情況出現,編寫如下shell指令碼進行規避此問題。 注意: <一>本例已weblogi

shell 指令碼 多執行緒判斷多個程序是否存在,不存在則重啟

shell 預熱 shell 中變數用 $ 區別 在shell指令碼中變數賦值等號前後不能有空格,有空格會被認為是命令 str='測試' echo $str arr=('test1' 'test2' 'test3') # 陣列, 每個元素間以空格隔開 echo

Linux下Shell指令碼實現批量重新命名資料夾,批量重新命名檔案(讓原本繁重的工作變得簡單)

最近接了個專案,具體做什麼都不說了,其中有個工作就是批量更改資料夾,然後批量更改資料夾下的檔名字,一會兒先貼程式碼,再詳細解釋步驟。 下面是我的簡化版的目錄結構,實際上有上百個。 project dir1 dir1.py dir2

Shell指令碼人機互動指令碼-su

本文演示通過expect工具實現su命令自動輸入密碼驗證的方法。 1、 su.sh指令碼實現 指令碼實現功能:使用者切換,執行完成之後進入新使用者介面。 #####################