~ 運算符awk '{for(i=1;i<=NF;i++) if($i ~ /^[0-9]/) print $i}'
$i ~ /regex/:字串 $i **匹配** 正則表達式 /regex/,成功回傳真(1)。!~:不匹配。(), |, +, ? 等。=~ 運算符[[ "$str" =~ ^[A-Za-z0-9]*$ ]] && echo "匹配"
[[ ... ]] 條件結構中可用。BASH_REMATCH 陣列:${BASH_REMATCH[0]} 為整體匹配,[1] 為第一個捕獲組。| 特性 | AWK ~ | Bash =~ |
|---|---|---|
| 使用場景 | AWK 程式/單行腳本 | Bash 條件判斷 |
| 正則定界 | /regex/ | 直接寫(無引號) |
| 捕獲組 | 不直接支援(需用 match() 函數) | 自動填充 BASH_REMATCH |
| 大小寫敏感 | 預設敏感,IGNORECASE=1 忽略 | 預設敏感,shopt -s nocasematch 忽略 |
AWK 用波浪號
~匹配正則;Bash 雙中括號裡用=~。