簡體   English   中英

打擊和替換整個字符串變量?

[英]Bash and replacing the whole string in variable?

我正在嘗試使用Bash替換來替換變量中的整個字符串(如果它與模式匹配)。 例如:

pattern="ABCD"

${var/pattern/}

刪除(無替換) $var第一次出現的$pattern

${var#pattern}

$var開頭刪除$pattern

但是如何從$var刪除正則表達式模式"^ABCD$" 我可以:

if [ $var == "ABCD" ] ; then 
  echo "This is a match." # or whatever replacement
fi

但這正是我想要的。

您可以進行正則表達式檢查:

pattern="^ABCD$"
[[ "$var" =~ $pattern ]] && var=""

它使用$pattern定義的正則表達式檢查$var 如果匹配,則執行命令var=""

測試

$ pattern="^ABCD$"
$ var="ABCD"
$ [[ "$var" =~ $pattern ]] && echo "yes"
yes
$ var="1ABCD"
$ [[ "$var" =~ $pattern ]] && echo "yes"
$ 

有關更多信息,請參見在BASH Shell腳本中檢查字符串是否與正則表達式匹配

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM