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...