Shell命令之字串處理__shell

來源:互聯網
上載者:User

       shell編程的過程中,經常遇到要擷取檔案名稱以及檔案尾碼名的問題.一般的處理方法如下:

#codefile="thisfile.txt"echo "filename:${file%.*}"echo "extension:${file##*.}"#resultfilename:thisfileextension:txt

       其主要是利用了Shell內建的一系列字串操作符號.具體的相關操作符號介紹如下:

運算式 含義
${#string} $string的長度
${string:position} 在$string中,從位置$position開始提取子串
${string:position:length} 在$string中,從位置$position開始提取長度為$length的子串
${string#substring} 從變數$string的開頭,刪除最短匹配$substring的子串
${string##substring} 從變數$string的開頭,刪除最長相符$substring的子串
${string%substring} 從變數$string的結尾,刪除最短匹配$substring的子串
${string%%substring} 從變數$string的結尾,刪除最長相符$substring的子串
${string/old/new} 使用$new,來代替第一個匹配的$old
${string//old/new} 使用$new,代替所有匹配的$old
${string/#old/new} 替換開頭.如果$string以$old開頭,那麼就用$new替換
${string/%old/new} 替換結尾.如果$string以$old結尾,那麼就用$new替換

       注意:不能使用Regex,只能使用?*的shell擴充. 例子

       將環境變數PATH的各個目錄分開,每行顯示一個.

echo -e ${PATH//:/'\n'}

       將$PATH內所有的”:”換成”\n”,並通過echo -e輸出.

       echo的-e參數,特別處理一些字元,若沒有-e,則”\n”以字元的形式輸出.

路徑字串處理.

dirname ${FULLPATH} 取目錄部分
basename ${FULLPATH} 取檔案名稱部分
basename FULLPATH {FULLPATH} {EXT} 取檔案名稱部分,並且去掉指定的副檔名
 #!/bin/sh FULLNAME="/home/dwdxdy/OpenCV-2.3.0.tar.bz2"EXT=".bz2"dirname ${FULLNAME}basename ${FULLNAME}basename ${FULLNAME} ${EXT}echo ${FULLNAME%/*}            echo ${FULLNAME##*/}echo ${FULLNAME##*.}

       利用shell內建的字串處理,可以完成dirname,basename的功能.

       此外,在Shell中還可調用其他命令做字串各種操作,如:awk,sed等.

       使用內部操作符代替awk,sed等外部程式,可以省略啟動外部程式的時間,加快整個shell程式的運行.

       一般情況,優先選擇shell內部操作符,若內部操作符無法完成相應的功能,再考慮awk,sed等外部程式.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.