[英]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.