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

Linux Shell中按首列编号筛选文本行并导出到新文件

根据首列编号筛选文本行的Shell解决方案

刚好遇到过类似的需求,这里给你两个实用的Linux Shell方法,帮你精准筛选input.txt中首列为指定编号的行,生成目标output.txt:

方法1:用awk(推荐,精准匹配首列)

awk处理列结构的文本特别顺手,能直接定位首列并做精准匹配:

awk '$1 ~ /^(045002|045013|045018)$/' input.txt > output.txt

简单解释:

  • $1代表每行的第一列数据
  • /^(045002|045013|045018)$/是正则匹配规则:^和$确保完全匹配首列的6位编号,不会误匹配像0450021这类相似的字符串
  • 最后通过>把结果重定向到output.txt里

如果后期需要修改目标编号,把编号放到变量里更方便维护:

# 定义目标编号,用|分隔多个值
target_ids="045002|045013|045018"
awk -v ids="$target_ids" '$1 ~ "^(" ids ")$"' input.txt > output.txt

方法2:用grep(快速实现)

如果习惯用grep,只要加上合适的参数也能精准匹配:

grep -E "^(045002|045013|045018)\s" input.txt > output.txt

简单解释:

  • -E启用扩展正则,支持用|表示“或”的关系
  • ^确保从行首开始匹配,避免中间出现的编号被误抓
  • \s匹配编号后的空白字符,保证只匹配作为首列的目标编号(如果你的分隔符是制表符,换成\t更精准)

验证结果

运行完命令后,直接用cat output.txt查看,就能得到你想要的只包含指定编号行的结果啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:28:50