linux Unix模式匹配脚本不匹配列模式[关闭]

wvyml7n5  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(114)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

25天前关闭
Improve this question
我遇到了一个unix模式匹配的问题。我试图根据模式[A-Z 0 -9]{17}验证字符串“VIN1234@56789111a”。结果应该是这个验证需要失败{因为它有小写和特殊字符},但在脚本中验证通过。

col_patt=[A-Z0-9]{17} sep=, input=filename n=1{column position in file name } 
 val=$(awk -F "$sep" -v n="$col_pos" -v m="$col_patt" -v d="$input" 
              '$n !~ "^" m "$" 
              { printf "%s:%s:%s\n", d, FNR, 
                $n > "/dev/stderr" count++ }
                END {print count+0}' "$cp_input" 2>> $script_path/errors_${file_id}.log )
4zcjmb1e

4zcjmb1e1#

我会怎么做:

if echo 'VIN1234@56789111a' | grep -q '^[A-Z0-9]{17}$'; then
    echo SUCCESS
else
    echo FAILED
fi

或者使用bash

if [[ VIN1234@56789111a =~ ^[A-Z0-9]{17}$ ]]; then
    echo SUCCESS
else
    echo FAILED
fi

或者使用awk

echo VIN1234@56789111a |
    awk '{if (/^[A-Z0-9]{17}$/) print "SUCCESS"; else print "FAILED"}'

相关问题