Unix下如何实现BLR前缀的字符串部分匹配筛选需求
解决方案
你当前使用的==是完全相等匹配运算符,仅能匹配内容完全一致的字段。要实现匹配BLR前缀的需求,使用awk的正则匹配语法即可:
修改后的判断代码
if($1 ~ /^BLR/) {print $2}
语法说明
~是awk的正则匹配运算符,用于判断左侧的字段是否符合右侧的正则规则- 正则
/^BLR/中,^代表锚定字符串的起始位置,规则会匹配所有以BLR开头、后续跟任意字符的字符串,刚好匹配你要求的BLR**格式,同时不会误命中IND23这类非BLR开头、或XBLR99这类BLR在中间的字段。
简化的命令行写法
如果是直接在终端调用awk处理文件,可以直接把条件写在动作前,省略if关键字:
awk '$1 ~ /^BLR/ {print $2}' 输入文件路径
内容的提问来源于stack exchange,提问作者Mukul Mohan
相关产品推荐
相关产品推荐

