bash shell中expr命令下幾種的使用

2021-08-29 15:50:27 字數 3337 閱讀 7497

expr在linux中是乙個功能非常強大的命令。通過學習做乙個小小的總結。

1、計算字串的長度。我們可以用awk中的length(s)進行計算。我們也可以用echo中的echo $進行計算,當然也可以expr中的expr length $string 求出字串的長度。

舉例

[root@localhost shell]# string="hello,everyone my name is xiaoming"  

[root@localhost shell]# echo $

34

[root@localhost shell]# expr length "$string"

34

2、expr中的expr index str

ings

ubst

ring

索引命令

功能在字

符串

string substring索引命令功能在字串

string

subs

trin

g索引命

令功能在

字串string上找出substring中字元第一次出現的位置,若找不到則expr index返回0或1。

舉例

[root@localhost shell]# string="hello,everyone my name is xiaoming"   

[root@localhost shell]# expr index "$string" my

11

[root@localhost shell]# expr index "$string" nihao

1

3、expr中的expr match $string substring命令在string字串中匹配substring字串,然後返回匹配到的substring字串的長度,若找不到則返回0。

舉例

[root@localhost shell]# string="hello,everyone my name is xiaoming"   

[root@localhost shell]# expr match "$string" my

0 [root@localhost shell]# expr match "$string" hell.*

34

[root@localhost shell]# expr match "$string" hell

4 [root@localhost shell]# expr match "$string" small

0

4、在shell中可以用和進行對string字串中字元的抽取。第一種是從position位置開始抽取直到字串結束,第二種是從position位置開始抽取長度為length的子串。而用expr中的expr substr $string $position $length同樣能實現上述功能。

舉例

root@localhost shell]# string="hello,everyone my name is xiaoming"   

[root@localhost shell]# echo $

yone my name is xiaoming

[root@localhost shell]# echo $

yone

[root@localhost shell]# echo $

yone my na

[root@localhost shell]# expr substr "$string" 10 5

ryone

注意:echo str

ing:

10:5和

expr

subs

tr

"和 expr substr "

string

:10:

5和ex

prsu

bstr

"string" 10 5的區別在於str

ing:

10:5以

0開始標

號而ex

prsu

bstr

"以0開始標號而expr substr "

string

:10:

5以0開

始標號而

expr

subs

tr"string" 10 5以1開始標號。

5、刪除字串和抽取字串相似katex parse error: expected '}', got '#' at position 8: 為刪除st…為刪除string開頭處與substring匹配的最長字元子串。

舉例

[root@localhost shell]# string="20091111 readnow please"   

[root@localhost shell]# echo $

111 readnow please

[root@localhost shell]# string="20091111 readnow please"

[root@localhost shell]# echo $

readnow please

解析:第乙個為刪除2和1之間最短匹配,第二個為刪除2和1之間的最長匹配。

6、替換子串str

ing/

subs

trin

g/re

plac

emen

t表示僅

替換一次

subs

trin

g相配字

符,

而表示僅替換一次substring相配字元,而

string

/sub

stri

ng/r

epla

ceme

nt表示

僅替換一

次sub

stri

ng相配

字元,而

表示為替換所有的substring相配的子串。

舉例

[root@localhost shell]# string="you and you with me"   

[root@localhost shell]# echo $

me and you with me

[root@localhost shell]# string="you and you with me"

[root@localhost shell]# echo $

me and me with me

shell中的expr命令

expr 可以進行的操作如下 邏輯操作 arg1 arg2 邏輯或操作,真則返回arg1,否則返回arg2 以null或者0來判斷引數的真假,有短路功能 arg1 arg2 邏輯與操作,真則返回arg1,否則返回arg2 以null或者0來判斷引數真假,有短路功能 關係操作 arg1 arg2 或者...

linux系統中expr命令

1 linux系統中expr命令實現命令列中的四則運算 簡單示例 root linuxprobe test expr 5 3 在命令列中實現加法運算 8 2 中間必須有空格 root linuxprobe test expr 5 3 中間必須有空格 5 3 root linuxprobe test ...

bash shell 中if的用法

條件判斷的寫法 條件表示式 條件表示式 注意這裡在中開始和結尾需要空格,不然執行會出錯 例子 bin bash a 0b 1 a eq b echo a不等於b 片這裡提一下bash shell中一些需要注意的東西 1整數比較 eq 表示 ne 表示 gt 表示 lt 表示 ge 表示 le表示 2...