Linux Shell指令碼攻略學習總結:三

來源:互聯網
上載者:User

Linux Shell指令碼攻略學習總結:三 根據副檔名切分檔案名稱首先,我們先來看兩個例子:[delphi] file_jpg="sample.jgp"  name=${file_jpg%.*}  echo File name is : $name  輸出結果:  File name is sample   [delphi] extension=${file_jpg#*.}  echo Extension is : $extension  輸出結果:Extension is : jpg   工作原理在第一個任務中,為了從“名稱.副檔名”中取得檔案的名字,我們使用了%操作符${$var%.*}的含義是:1.從$var中刪除位元於%右側的萬用字元所匹配的字串。萬用字元從右向左進行匹配2.給var賦值,所以結果會輸出檔案名 %屬於非貪婪操作。它從右向左找出匹配萬用字元的最短結果。還有一個操作符 %% 。這個操作符與 % 相似,但行為模式確實貪婪的,這意味著它會匹配合格最長的字串。 在第二個任務中,原理是和 % 相似的,只是它的運行過程是從左至右。操作符 ## 則用 *. 從左至右執行貪婪匹配。 展示一個例子:其中 URL=“www.google.com”  批量重新命名檔案下面這個例子實現的是批量處理檔案重新命名操作,支援的格式豐富:首先,我們需要在目錄下放置測試的圖片,如所示:  其中rename.sh就是實現功能的指令檔,我們運行指令碼程式,得到如下所示的輸出:  我們再來看看檔案的狀態是不是真的改變了:  下面給出實現的指令碼程式:[delphi] #!/bin/bash  #rename.sh  count=1;  for img in *.[jJ][pP][gG] *.[pP][nN][gG]  do  new=image-$count.${img##*.}  mv "$img" "$new" 2> /dev/null    if [ $? -eq 0 ]  then  echo "Renaming $img to $new"  let count++;  fi  done   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.