You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux Bash使用grep提取指定KNR单词及脚本运行方法

操作方案

提取指定格式KNR别名

你要匹配的目标结构为KNR+数字段+_THING、且末尾紧跟空格,直接用grep匹配提取即可:

  1. 如果你已经生成了Test.txt文件,执行以下命令直接提取所有符合规则的单词,结果会自动去掉末尾附带的空格:
grep -oP 'KNR[0-9]{17}_THING(?= )' Test.txt > KNR_result.txt

正则说明:{17}对应你示例中KNR后的17位数字,如果实际数字长度有变化,直接修改大括号内的数值即可;如果数字长度不固定,把[0-9]{17}替换为[0-9]+即可匹配任意长度连续数字。(?= )是正向先行断言,仅匹配后面紧跟空格的目标串,不会把空格纳入输出结果,不需要额外处理末尾空格。

  1. 你之前过滤注释、空行的步骤可以和提取步骤合并,不需要单独生成Test.txt中间文件,处理大文件时效率更高:
# 合并写法,直接从原文件提取结果,跳过注释行、空行
grep -vE '^#|^$' 你的原文件路径 | grep -oP 'KNR[0-9]{17}_THING(?= )' > KNR_result.txt

如果你的运行环境grep不支持-P(Perl正则)参数(比如部分嵌入式系统的精简版grep),可以换全兼容写法,不需要依赖正则高级特性:

# 兼容写法,匹配后删除末尾空格即可
grep -vE '^#|^$' 你的原文件路径 | grep -o 'KNR[0-9]*_THING ' | tr -d ' ' > KNR_result.txt

Shell脚本运行注意事项

按以下规范写脚本即可正常运行:

  • 脚本第一行必须指定解释器,写#!/bin/bash即可,不要漏写
  • 脚本中涉及的文件路径尽量写绝对路径,避免执行时工作目录变化导致找不到文件
  • 脚本写完后执行chmod +x 你的脚本文件名.sh添加执行权限,之后直接通过./你的脚本文件名.sh即可运行
  • 如果需要把结果追加到已有文件而非覆盖,把命令里的>替换成>>即可,和你之前的写入逻辑一致

内容的提问来源于stack exchange,提问作者Elias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:24:20