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

如何用awk或grep提取JSON中ID与UserName字段并逐行输出

用awk或grep提取JSON中的ID和UserName字段

完全可以用awk或者grep结合awk来实现这个需求,下面是针对规整格式JSON的具体命令示例:

先假设你的JSON文件(比如命名为user_data.json)内容大致如下:

[
  {"ID": "101", "UserName": "Alice", "Age": 25},
  {"ID": "102", "UserName": "Bob", "Email": "bob@example.com"},
  {"ID": "103", "UserName": "Charlie"}
]

方法一:单独用awk处理

如果每个用户对象的ID和UserName字段要么在同一行,要么按顺序出现在相邻行,可以用这条命令:

awk -F'"' '/"ID":/{id=$4} /"UserName":/{print id, $4}' user_data.json

工作逻辑:

  • 用-F'"'把双引号作为字段分隔符
  • 匹配到包含"ID":的行时,提取第4个字段(也就是ID的值)存入变量id
  • 匹配到包含"UserName":的行时,打印之前存的id和当前行的UserName值

方法二:grep+awk组合处理

先用grep过滤出只包含ID和UserName的行,再用awk配对输出:

grep -E '"ID"|"UserName"' user_data.json | awk -F'"' 'NR%2==1{id=$4} NR%2==2{print id, $4}'

工作逻辑:

  • grep -E用正则匹配出所有包含"ID"或"UserName"的行
  • awk通过行号NR判断,奇数行(ID行)存值到id,偶数行(UserName行)打印配对结果

注意事项

如果你的JSON格式非常不规整(比如键值对随意换行、字段顺序混乱),awk和grep这类文本处理工具可能会出错,这种情况下更推荐用专门的JSON处理工具jq,但如果是格式相对固定的JSON,上面的awk/grep方法完全够用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:10:25