shell腳本:批量修改文件名(文件名中添加字符)

舉例如下:批量創建10個隨機字符串的文件,要求每個文件名后面添加_aaa,后綴名不變;

[root@localhost goodboy]# ls

adddbbdedf.html ?baacjaiija.html ?bhcfaabcfh.html ?dgjdcdfbca.html ?efejadfdji.html

agdhcdeaje.html ?bgffbffjcg.html ?cbbiebdafh.html ?diadebbhag.html ?jcajafgejf.html

腳本1:

1
2
3
4
5
6
7
8
9
[root@localhost?~]#?cat?02.sh
#!/bin/bash
#written?by?mofansheng@2016-02-17
path=/goodboy
[?-d?$path?]?&&?cd?$path
for?file?in?`ls`
do
?mv?$file?`echo?$file|sed?'s/\(.*\)\.\(.*\)/\1_aaa.\2/g'`
done


解釋說明:

使用sed替換,正則表達式第1個()括號里面代表文件名即\1;中間. 使用\進行脫意,代表分隔符;

第2個括號里面代表后綴html內容即\2;

使用此方法需要在替換中添加.符號;


更改后的效果如下:

1
2
3
4
5
6
7
8
9
10
11
[root@localhost?goodboy]#?ll
-rw-r--r--?1?root?root?0?2月??17?17:40?adddbbdedf_aaa.html
-rw-r--r--?1?root?root?0?2月??17?17:40?agdhcdeaje_aaa.html
-rw-r--r--?1?root?root?0?2月??17?17:40?baacjaiija_aaa.html
-rw-r--r--?1?root?root?0?2月??17?17:40?bgffbffjcg_aaa.html
-rw-r--r--?1?root?root?0?2月??17?17:40?bhcfaabcfh_aaa.html
-rw-r--r--?1?root?root?0?2月??17?17:40?cbbiebdafh_aaa.html
-rw-r--r--?1?root?root?0?2月??17?17:40?dgjdcdfbca_aaa.html
-rw-r--r--?1?root?root?0?2月??17?17:40?diadebbhag_aaa.html
-rw-r--r--?1?root?root?0?2月??17?17:40?efejadfdji_aaa.html
-rw-r--r--?1?root?root?0?2月??17?17:40?jcajafgejf_aaa.html


腳本2:

1
2
3
4
5
6
7
8
#!/bin/bash
#written?by?mofansheng@2016-02-17
path=/goodboy
[?-d?$path?]?&&?cd?$path
for?file?in?`ls`
do
?mv?$file?`echo?$file|sed?'s/\(.*\)\(\..*\)/\1_aaa\2/g'`
done


解釋說明:

同樣使用sed替換,正則表達式,與上面的區別在于第2個括號里面的內容,代表.html 分隔符和后綴名為一體,替換內容的話不需要再單獨加.點;.分隔符同樣需要使用\進行脫意;


可以使用sed -r參數,看起來就清爽很多,不需要\脫意;

mv $file `echo $file|sed -r 's/(.*)(\..*)/\1_aaa\2/g'`


大家有更好的方法,歡迎分享知識~





本文轉自 模范生 51CTO博客,原文鏈接:http://blog.51cto.com/mofansheng/1743016,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540025.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540025.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540025.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 格式化小數_java-如何格式化小數位數精度

正如評論中指出的那樣,如果您只有一個String表示形式,那么就無法判斷它實際上是否有重復的部分,或者精度是否不夠高.更新我正在研究一個用分子和分母表示為BigIntegers的有理數的類(并假定盡可能地簡化).在那里,我實現了一種以十進制字符串形式表示的方法,并提出了以下方法&…

當使用easyui時,jquery的設置disabled屬性方法失效

功能:選擇未受洗,設置受洗時間,教堂選項 disabled 步驟: 使用了常規的jquery的方法 //兩種方法設置disabled屬性$(#areaSelect).attr("disabled",true);$(#areaSelect).attr("disabled","disabled&quo…

用戶登錄提交前,密碼加密傳輸

需求: 因為OA放在外網,為了提高安全性,用戶登錄時,密碼加密傳輸,數據庫密碼加密保存。 解決方案: 前臺加密用JQUERY MD5插件,這個工具從網上下載的。 后臺密碼加密,用java的MD5工…

java 內存分布_一圖看懂JVM內存分布,永久記住!

經常在說JVM內存分布,也經常去看,但是總是在面試的時候說不清楚或者模糊,甚至有可能說錯,只有真正的理解,并且在心中有一個總結構圖才能記得清楚說的清楚!| JVM總覽圖java內存區域主要分程序計數器、Java虛…

Winodows10 安全登錄(Administrator賬戶與Microsoft Account關聯

我們都知道windows系統最大的管理員是administrator,linux是root,從windows7時代開始,安裝操作系統的時候會在最后一步提示創建一個本地賬戶一直延續到windows8、windows8.1、windows10。近期微軟發布了windows10后,很多用戶都開始…

微信企業號三個連接模式

在銀行里做微信企業號開發有半年多了,因銀行封裝了調用微信企業號的方法,說是微信企業號開發,其實就是jsp,java代碼的編寫,銀行用的開發工具是EOS,對這個工具我只想說,用久了,就找不…

java opencv安裝路徑_Java搭建opencv開發環境

由本菜13歷經4天才搭建的好的Java OpenCv開發環境帶來 .PS:不保證過程都是必須的,必要的.反正我自己成功了... 嘿嘿嘿.官方網站SourceForge點擊FilesFiles因為我的機器是Mac,所以選擇了unix. 然后下載3.4.3版本3.4.3PS:主要是因為剛開始接觸這個OpenCv的時候是用HomeBrew裝的, …

iBatis——執行原理

a) 執行原理 1、 將一個對象作為 參數(對象可以是Java Bean,Map實現和基本類型的包裝類),參數對象將為SQL修改語句和查詢語句設定參數值。 2、 執行 mapped statement。這是SQL Maps最重要的步驟。SQL Map框架將創建一個PreparedS…

讓IT工作者過度勞累的12個壞習慣

1. QQ、MSN、Gtalk,一個都不少。壞習慣 由于聊天對象與聊天內容的不可控制性,使用即時通訊軟件是降低工作效率的罪魁禍首。有調查顯示,使用即時通訊軟件,工作效率會降低 20%. 2. “總想多看一點點”——忘記上網的目的。 本想查找…

flux java_Java反應式框架Reactor中的Mono和Flux

1. 前言最近寫關于響應式編程的東西有點多,很多同學反映對Flux和Mono這兩個Reactor中的概念有點懵逼。但是目前Java響應式編程中我們對這兩個對象的接觸又最多,諸如Spring WebFlux、RSocket、R2DBC。我開始也對這兩個對象頭疼,所以今天我們就…

MySQL grant 權限,分別可以作用在多個層次上

1. grant 作用在整個 MySQL 服務器上:grant select on *.* to dbalocalhost; -- dba 可以查詢 MySQL 中所有數據庫中的表。grant all on *.* to dbalocalhost; -- dba 可以管理 MySQL 中的所有數據庫2. grant 作用在單個數據庫上:grant select on testdb…

用了2年的EOS的感受

EOS是普元信息技術股份有限公司開發的產品,核心是eclipse,給eclipse穿上了很多衣服。不知道普元公司給eclipse捐款了沒。 開發人員可以從它的官網免費下載,免費用。免費版的服務器最多鏈接數是5個人,這5個人在生產上行不通的&…

java 線程分組_Java多線程可以分組,還能這樣玩!

前面的文章,棧長和大家分享過多線程創建的3種方式《實現 Java 多線程的 3 種方式》。但如果線程很多的情況下,你知道如何對它們進行分組嗎?和 Dubbo 的服務分組一樣,Java 可以對相同性質的線程進行分組。來看下線程類 Thread 的所…

關于Android構建

“IDE都是給小白程序員的,大牛級別的程序員一定是命令行控,終端控,你看大牛都是使用vim,emacs 就一切搞定” 這話說的雖然有些絕對,但是也不無道理,做開發這行要想效率高,自動化還真是缺少不了命令行工具&a…

普元EOS開發學習(二)

1、QueryFormQueryForm控件是一個用來輸入查詢條件的表單&#xff0c;作為一個代碼片斷&#xff0c;以<h:form></h:form>形式嵌入在JSP頁面中。表單提交時&#xff0c;根據控件生成時設置的邏輯&#xff0c;可以對指定數據集進行有條件查詢&#xff0c;同時可以根據…

java map class_Java:聲明一個包含兩個相關泛型類型的Map(Map,Class ?extends ClassB )...

另一種方法是提供自己的Map實現.如果擴展現有實現并使用新類型,則不需要太多代碼&#xff1a;public class CompatibleHashMap extends HashMap, ClassB> {}現在,一個CompatibleHashMap< String>只允許你把ClassA< String>作為鍵和ClassB< String>作為價值…

centos 6 安裝zabbix 3.0

1.安裝PHP Zabbix 3.0對PHP的要求最低為5.4&#xff0c;而CentOS6默認為5.3.3&#xff0c;完全不滿足要求&#xff0c;故需要利用第三方源&#xff0c;將PHP升級到5.4以上&#xff0c;注意&#xff0c;不支持PHP7 rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm yum in…

普元EOS開發學習(一)

警惕EOS的拖圖元開發導致技術退步&#xff0c;請閱博主《用了2年EOS后的感受》 --------------- EOS開發和原有的JAVA開發有很大的不同&#xff0c;在開發的過程中&#xff0c;只能看到JSP頁面的源代碼&#xff0c;如果想要了解到操作類型的代碼&#xff0c;那么你只能看到XML…

java 共享鎖 獨占鎖_java中的公平鎖、非公平鎖、可重入鎖、遞歸鎖、自旋鎖、獨占鎖和共享鎖...

一、公平鎖與非公平鎖1.1 概述公平鎖&#xff1a;是指多個線程按照申請鎖的順序來獲取鎖。非公平鎖&#xff1a;是指在多線程獲取鎖的順序并不是按照申請鎖的順序&#xff0c;有可能后申請的線程比先申請的線程優先獲取到鎖&#xff0c;在高并發的情況下&#xff0c;有可能造成…

GoogleNet網絡分析與demo實例

參考自 up主的b站鏈接&#xff1a;霹靂吧啦Wz的個人空間-霹靂吧啦Wz個人主頁-嗶哩嗶哩視頻這位大佬的博客 Fun_機器學習,pytorch圖像分類,工具箱-CSDN博客 1. GoogLeNet網絡詳解 GoogLeNet在2014年由Google團隊提出&#xff08;與VGG網絡同年&#xff0c;注意GoogLeNet中的L大…