bash字串擷取 匹配

2021-10-18 20:33:08 字數 1282 閱讀 2036

字串匹配特定起始/結尾/子串

1. 指定字元匹配字串

# 去左留右, % 去右留左,不匹配則保留整個字串

$ string=

'a/a/b/c/d/d'

$ echo $

a/b/c/d/d

$ echo $

d$ echo

$a/a/b/c/d

$ echo$a

$ echo

$# 提取『a/』左側內容

a/

2. 指定位置擷取

左側0起始,右側0-1起始

$ echo

$# 左起第3位後到末尾

/b/c/d/d

$ echo

$# 左起第3位後取3位

/b/$ echo

$# 右起第7位到末尾

b/c/d/d

$ echo

$# 右起第7位起取3位

b/c

1. 比較 ==

雙中括號、字串不需引號

$ if[[

$string

== a* ]];

then

echo

yes;

else

echo no;

fiyes

$ if[[

$string

== *d ]];

then

echo

yes;

else

echo no;

fiyes

$ if[[

$string

== *d/* ]];

then

echo

yes;

else

echo no;

fiyes

2. 正則匹配
$ if[[

$string

=~ d/.* ]];

then

echo

yes;

else

echo no;

fiyes

# 起始錨定 ^

$ if[[

$string

=~ ^a.*d/.* ]];

then

echo

yes;

else

echo no;

fiyes

bash 字串擷取

命令的2種替換形式 和 示例 截斷字串 a 擷取檔名稱 var1 basename home aimybbe bash test.sh echo var1 擷取目錄 var2 dirname home aimybbe bash test.sh echo var2 b var1 basename ho...

Bash中的字串擷取

1.按子串分割擷取 從左往右,刪除最短的乙個以string結尾的子串,即擷取第乙個string子串之後的字串 從左往右,刪除最長的乙個以string結尾的子串,即擷取最後乙個string子串之後的字串 從右往左,刪除最短的乙個以string開頭的子串,即擷取最後乙個string子串之前的字串 從右往...

bash 字串擷取,替換,刪除,條件賦值

字串按位置切片 root localhost scripts var 23dfja root localhost scripts echo 23d root localhost scripts echo dfja字串模式 模式 字串按模式切片 只能從行首或行尾開始切,不能切中間部分 root fa ...