Ubuntu命令行从Excel转换的txt文件中提取6-7位零件编号咨询
问题原因
你当前使用的命令中指定了/\K前缀匹配规则,只会捕获/符号后面的数字串,因此示例中在|符号后的另外两个零件号无法被匹配,同时你没有对数字长度做严格限制,存在匹配到长数字串片段的风险。
正确实现命令
# 源文件为list.txt时使用 grep -Po '\b\d{6,7}\b' list.txt > productnumber.txt # 如果你用的源文件是hardware components_prashant.txt,使用下面这条 grep -Po '\b\d{6,7}\b' hardware\ components_prashant.txt > productnumber.txt
命令说明
-P开启Perl兼容正则语法支持-o仅输出匹配到的内容片段,不输出整行\b匹配单词边界,避免从10位、12位等更长的数字串中截取6-7位的错误结果\d{6,7}严格匹配连续6位或7位的纯数字串- 执行后符合要求的零件号会直接写入
productnumber.txt文件,和预期输出完全一致
内容的提问来源于stack exchange,提问作者Mainland
相关产品推荐
相关产品推荐

