Linux

從變數中檢測最後出現的兩個字母(第一個字母是 C,第二個字母可以是 A 或 B)並應用一些刪除和 if 條件

  • October 16, 2017

考慮下面的變數 letters=“1234, MR45, MB46, 1234” 需要一個命令來檢測最後一次出現的 M

$$ B or R $$其中 M 是固定的,第二個字母可以是 B 或 R 並刪除之前的所有內容 預期輸出輸出 =“MB46, 1234” 如果字母變數沒有 MB 或 MR 字,則還需要 if 命令列印錯誤

**Bash**解決方案(正則表達式匹配):

letters="1234, MR45, MB46, 1234"

if [[ "$letters" =~ .*(M[BR].*) ]]; then 
   echo "${BASH_REMATCH[1]}"   # MB46, 1234
else 
   echo "MB or MR word not found!"
fi

作為簡化的縮短替代方案,**grep**可以使用以下 GNU 方法:

grep -Po '.*\KM[BR].*' <<<"$letters" || echo "MB or MR word not found"

引用自:https://unix.stackexchange.com/questions/398264