Shell常用處理字串方法 備查

2021-08-31 05:31:13 字數 1934 閱讀 8001

一、構造字串

直接構造

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_name" 3`

echo "repeat = $str_repeat"

二、賦值與拷貝

直接賦值

與構造字串一樣

user_name=terry

從變數賦值

aliase_name=$user_name

三、聯接

直接聯接兩個字串

str_temp=`printf "%s%s" "$str_zero" "$user_name"`

使用printf可以進行更複雜的聯接

四、求長

求字元數(char)

count_char=`echo "$str_first" | wc -m`

echo $count_char

求位元組數(byte)

count_byte=`echo "$str_first" | wc -c`

echo $count_byte

求字數(word)

count_word=`echo "$str_first" | wc -w`

echo $count_word

五、比較

相等比較

str1 = str2

不等比較

str1 != str2

舉例:if [ "$user_name" = "terry" ]; then

echo "i am terry"

fi小於比較

#return 0 if the two string is equal, return 1 if $1 < $2, else 2strcompare()

六、測試

判空-z str

判非空-n str

是否為數字

# return 0 if the string is num, otherwise 1

strisnum()

舉例:if [ -n "$user_name" ]; then

echo "my name is not empty"

fiecho `strisnum "9980"`

七、分割

以符號+為準,將字元分割為左右兩部分

使用sed

舉例:命令 date --rfc-3339 seconds 的輸出為

2007-04-14 15:09:47+08:00

取其+左邊的部分

date --rfc-3339 seconds | sed 's/+[0-9][0-9]:[0-9][0-9]//g'

輸出為2007-04-14 15:09:47

取+右邊的部分

date --rfc-3339 seconds | sed 's/.*+//g'

輸出為08:00

以空格為分割符的字串分割

使用awk

舉例:str_fruit="banana 0.89 100"

取第3欄位

echo $str_fruit | awk ''

八、子字串

字串1是否為字串2的子字串

# return 0 is $1 is substring of $2, otherwise 1

strissubstring()

string字串常用處理方法

tolower 得到字串的小寫形式,由於字串是不可變的所以 這些函式不會直接修改字串內容而是把修改後的字串的值通過函式返回值的形式返回 string s s.tolower toupper 得到字串的大寫形式 trim 去掉字串兩端空白 s1.equals s2,stringcomparison.o...

iOS字串NSString常用處理方法

ios字串常用處理方法 1.根據起始位置和長度進行字串擷取 substringwithrange 方法說明 nsstring substringwithrange nsrange arange 其中關於 nsrange 的生成方式 nsrange nsmakerange nsuinteger loc...

Go字串常用處理

應用到strings包 author jadeshu description file main version 1.0.0 date 2019 11 7 1 01 package main import fmt strconv strings func main fmt.println strin...