linux sed名寧,Linux shell利用sed批量更改文件名的方法

微子網絡與大家分享了在Linux shell中使用sed批量更改文件名的方法。希望你看完這篇文章有所收獲。大家一起討論一下。

示例

去除特定字符

目標:把2017-01-01.jpg和2018-01-01.jpg變成20170101.jpg和20180101.jpg

方法:用空值替換全部

for filein ` ls | grep . jpg ` s

newfile=`echo$file|sed的/-//g ' `

mv$file$newfile

在此完成,sed用于替換標準輸出的字符串,其一般格式如下:

Stdout|sed的/pattern/replace/'在上面的示例中,在末尾添加了G以替換所有匹配項,而不僅僅是第一個匹配項。

中間插入字符

目標:把book-01.txt和紙-02.txt改成book-01 . txt和紙-02.txt。

方法:利用組匹配獲取待插入位置兩側的字符串,然后用反向引用替換

for filein ` ls | grep . txt ` s

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

mv$file$newfile

完成分析

在上面的例子中,要重命名的文件列表是通過ls和grep命令獲得的,然后用sed命令替換字符串,最后用mv命令更改文件名。

有很多方法可以得到要重命名的文件列表,比如find命令或者直接字符串,后面會提到。

注意ls | grep。for循環后的txt。該命令包含在兩個反單引號中,其功能與$(ls | grep)相同。txt)。封閉的字符串將作為命令執行,然后返回字符串結果。

文件名包含空格的解決方法

我們可以將文件列表直接寫入for循環,而不是通過命令獲取,例如:

對于文件“文件1文件2文件3”

.

Done可以看到for循環按空格拆分字符串,所以如果要更改的文件名包含空格,就會被拆分成多個文件名,導致錯誤。

為了解決這個問題,我們可以將IFS(內部字段分隔符)設置為一個新的行字符\n,這樣for循環就會逐行獲取變量的值,保證每次都得到一個完整的文件名。

設置IFS變量的命令需要放在for循環之前:

IFS=$'\n '

forfilein`ls

.

完成也可以直接使用while read命令一次讀取一行到變量文件中:

ls|grep'*。txt“| while readfile”

.

完成使用 find 獲取文件列表

在前面的例子中,我們使用ls命令來獲取文件列表。這個命令只能獲取某個目錄的文件,不能按多個條件過濾。

說到文件搜索,不得不提功能強大的find命令。該命令可以在多級目錄中查找文件,并可以設置創建時間、文件大小、所有者等各種條件。查找文件特別方便靈活。

使用find命令獲取文件列表,然后使用sed命令用正則表達式修改文件名。這兩個命令的組合可以完成幾乎所有常見的批量重命名任務。

例如,所有大于1M且后綴為txt或jpg的文件都從book_20170101.txt和image_20170101.jpg格式的文件重命名為20170101-book.txt和20170101-image.jpg,代碼如下:

forfilein`find。-大小1M-名稱' *_*。txt'-o-name'*_*。jpg ' ` s

newfile=`echo$file|sed的/\([a-z]\ \)_\([0-9]\ \)。/\2-\1./'`

mv$file$newfile

讀完這篇文章,done相信你已經對Linux shell中使用sed批量更改文件名的方法有了一定的了解。如果您想了解更多相關知識,請關注微子網絡,感謝您的閱讀!

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

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

相關文章

android手機給iphone越獄,一臺ROOT后的安卓手機:可以用來給iOS 13越獄了

iOS 13時代的越獄工具主要包括unc0ver和Checkra1n兩款,前者最新的v4.2.1版本已經支持A9到A13設備從除了支持的設備和系統多,unc0ver的一大優勢在于可在iOS設備上獨立完成越獄操作,Checkra1n則需要借助電腦,包括重啟失效后也是如此…

502 Bad Gateway The server returned an invalid or incomplete response

問題描述:最近在登陸某大學網站時,網站如下: https://yzb.tju.edu.cn/ 發現登錄不進去,報了502 Bad Gateway The server returned an invalid or incomplete response這個錯誤。 問題解決:將https改為http&#xff0…

iOS VIPER架構(三)

路由是實現模塊間解耦的一個有效工具。如果要進行組件化開發,路由是必不可少的一部分。目前iOS上絕大部分的路由工具都是基于URL匹配的,優缺點都很明顯。這篇文章里將會給出一個更加原生和安全的設計,這個設計的特點是: 路由時用p…

android camera滑動,Android怎么實現小米相機底部滑動指示器

Android怎么實現小米相機底部滑動指示器發布時間:2021-04-15 14:39:38來源:億速云閱讀:94作者:小新這篇文章給大家分享的是有關Android怎么實現小米相機底部滑動指示器的內容。小編覺得挺實用的,因此分享給大家做個參考…

laravel安裝laravel-ide-helper擴展進行代碼提示(二)

一、擴展的地址 https://github.com/barryvdh/laravel-ide-helper二、安裝擴展 1、引入庫: composer require barryvdh/laravel-ide-helper composer require doctrine/dbal如果只想在開發環境上使用,請加上--dev composer require --dev barryvdh/larav…

android md 顏色,安卓MD(Material Design)規范

Md規范是一種設計風格,并不特指規范。是一種模擬紙張的手法。一、核心思想把物理世界的體驗帶進屏幕。去掉現實中的雜質和隨機性,保留其最原始純凈的形態、空間關系、變化與過度,配合虛擬世界的靈活特性,還原最貼近真實的體驗&…

Mariadb修改root密碼

2019獨角獸企業重金招聘Python工程師標準>>> 默認情況下,新安裝的 mariadb 的密碼為空,在shell終端直接輸入 mysql 就能登陸數據庫。 如果是剛安裝第一次使用,請使用 mysql_secure_installation 命令初始化。 # mysql_secure_inst…

【譯】Googler如何解決編程問題

本文是Google工程師Steve Merritt的一篇博客,向大家介紹他自己和身邊的同事解決編程問題的方法。 原文地址:blog.usejournal.com/how-a-googl… 在本文中,我將完整的向你介紹一種解決編程問題的策略,這個策略是我在日常工作中一直…

自學html和css,學習HTML和CSS的5大理由

描述人們學習HTML和CSS最常見的原因是開始從事web開發。但并不是只有web開發人員才要學習HTML和CSS的核心技術。作為一個網絡用戶,你需要你掌握的相關技術很多,但下面有5個你無法拒絕學習HTML和CSS的理由。1、輕松制作卡通動畫Web上的動畫很多年來都是使…

html 左側 樹形菜單,vue左側菜單,樹形圖遞歸實現代碼

學習vue有一段時間了,最近使用vue做了一套后臺管理系統,左側菜單需求是這樣的,可以多層,數據由后臺傳遞。也因為自己對官方文檔的不熟悉使得自己踩了不少坑,今天寫出來和大家一起分享。效果圖如下所示:先說…

Node.js的基本使用3

koa(擴展知識, 建議學習) koa是express超集(進階版)前后端分離和耦合概念介紹 面向過程 -》 面向對象 --》 面向服務數據庫 Node.js mongodb(bson json的超集) 分類: 關系型數據庫: MySql非關系型數據庫: MongoDB Mong…

Flutter的滾動以及sliver約束

Flutter框架中有很多滾動的Widget,ListView、GridView等,這些Widget都是使用Scrollable配合Viewport來完成滾動的。我們來分析一下這個滾動效果是怎樣實現的。 Scrollable在滾動中的作用 Scrollable繼承自StatefulWidget,我們看一下他的State的build方法…

頁面增加html,為靜態頁面HTML增加session功能

一般來說,只有服務器端的CGI程序(ASP、PHP、JSP)具有session會話功能,用來保存用戶在網站期間(會話)的活動數據信息,而對于數量眾多的靜態頁面(HTML)來說,只能使用客戶端的cookies來保存臨時活動數據,但對于cookies的操…

關于Istio 1.1,你所不知道的細節

本文整理自Istio社區成員Star在 Cloud Native Days China 2019 北京站的現場分享 第1則 主角 Istio Istio作為service mesh領域的明星項目,從2016年發布到現在熱度不斷攀升。 Istio & Envoy Github Star Growth 官網中Istio1.1的架構圖除了數據面的Envoy和控制面…

html調用父頁面的函數,js調用父框架函數與彈窗調用父頁面函數的方法

調用父級中的 aaa的函數子頁面中:οnclick"window.parent.frames.aaa()"父頁面中:function aaa(){alert(‘bbbbb’);}----------------------------------------------frame框架里的頁面要改其他同框架下的頁面或父框架的頁面就用parentwindow.opener引用的是window.…

讀卡距離和信號強度兩方面來考慮

選擇物聯宇手持終端機的時候,你可以參考以下幾個原則:選擇行業需要應用功能,能有效控制好預算。屏幕界面需要高清晰的,選用分辨率較高的能更好的支持展現。按照項目所需求的來分析,需要從讀卡距離和信號強度兩方面來考…

html script 放置位置,script標簽應該放在HTML哪里,總結分享

幾年前,有經驗的程序員總是讓我們將很明顯,現在瀏覽器有了更加酷的兼容方式,這篇文章,俺將跟大家一起來學習script標簽的async和defer新特性,探討script應該放在哪里更好。頁面加載方式在我們討論當瀏覽器加載帶有獲取…

2021吉林高考26日幾點可以查詢成績,2021吉林高考成績查分時間及入口

2021吉林高考成績查分時間及入口2021吉林高考成績查分時間及入口,有一些高考生真的很積極,考完試當天就將答案給對好了,考試嘛,站在旁觀者的角度來看總是有人歡喜有人憂。估出來分數不咋地的,整個六月就毀了。2021吉林…

easyui,layui和 vuejs 有什么區別

2019獨角獸企業重金招聘Python工程師標準>>> easyui是功能強大但是有很多的組件使用功能是十分強大的,而layui是2016年才出來的前端框架,現在才更新到2.x版本還有很多的功能沒有完善,也還存在一些不穩定的情況,但是lay…

廣東2021高考成績位次查詢,廣東一分一段表查詢2021-廣東省2021年一分一段統計表...

廣東省高考一分一段表是同學們在填報高考志愿時的重要參考資料之一。根據一分一段表,大家不僅可以清楚地了解自己的高考成績在全省的排名,還可以結合心儀的大學近3年在廣東省的錄取位次變化,判斷出自己被錄取的概率大概是多少。根據考試院公布…