Shell命令之字串處理

2021-08-07 06:08:08 字數 1958 閱讀 5549

shell程式設計的過程中,經常遇到要獲取檔名以及檔案字尾名的問題.一般的處理方法如下:

#code

file="thisfile.txt"

echo

"filename:$"

echo

"extension:$"

#result

filename:thisfile

extension:txt

表示式

含義$$string的長度

$$string中,從位置$position開始提取子串

$$string中,從位置$position開始提取長度為$length的子串

$從變數$string的開頭,刪除最短匹配$substring的子串

$從變數$string的開頭,刪除最長匹配$substring的子串

$從變數$string的結尾,刪除最短匹配$substring的子串

$從變數$string的結尾,刪除最長匹配$substring的子串

$使用$new,來代替第乙個匹配的$old

$使用$new,代替所有匹配的$old

$替換開頭.如果$string$old開頭,那麼就用$new替換

$替換結尾.如果$string$old結尾,那麼就用$new替換

注意:不能使用正規表示式,只能使用?*的shell擴充套件.

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

echo

-e$

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

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

路徑字串處理.

dirname $

取目錄部分

basename $

取檔名部分

basename fu

llpa

th取檔名部分,並且去掉指定的副檔名

#!/bin/sh 

fullname="/home/dwdxdy/opencv-2.3.0.tar.bz2"

ext=".bz2"

dirname $

basename $

basename $ $

echo $

echo $

echo $

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

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

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

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

shell字串處理

一 構造字串 直接構造 str zero hello str first i am a string str second success 重複多次 repeat the first parm 1 by 2 times strrepeat 舉例 str repeat strrepeat user n...

shell 字串處理

一 號擷取,刪除左邊字元,保留右邊字元。echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.google.com test.htm 二 號擷取,刪除左邊字元,保留右邊字元。echo 表示從左邊開始刪除最後 最右邊 乙個 號及左...

SHELL字串處理

linux 的字串擷取很有用。有八種方法。假設有變數 var 1.號擷取,刪除左邊字元,保留右邊字元。複製 如下 echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.aaa.com 123.htm 2.號擷取,刪除左邊字元,保...