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

如何使用awk解析文本文件并将姓名、箱号分别存储到两个变量

解决方案

你可以直接通过while read逐行读取并拆分字段的方式实现需求,不推荐用for循环遍历命令输出,后者容易受特殊字符、异常空格的影响。

调整后脚本写法

写法1(直接读取匹配行,拆分字段)

# 筛选以name开头的行后逐行拆分
grep '^name' file.txt | while read -r _ NAME _ BOX; do
  echo "$NAME $BOX"
  # 此处可添加你需要的其他业务逻辑,NAME、BOX变量可直接使用
done

语法说明:

  • read命令会按空格自动拆分输入行,变量名按顺序对应拆分后的字段
  • 这里的_是占位符,用来丢弃不需要的字段:第一个_对应行首的name,第二个_对应第三个字段box
  • 剩下的第二个、第四个字段会自动赋值给NAME、BOX变量

写法2(先通过awk提取目标字段再读取)

如果你习惯用awk做前置处理,也可以这么写:

awk '/^name/ {print $2, $4}' file.txt | while read -r NAME BOX; do
  echo "$NAME $BOX"
  # 其他业务逻辑
done

输出结果

用你提供的file.txt内容运行脚本后,输出完全符合预期:

John 2
Joe 3
May 4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:27:02