管道组合 + 结构化输出:让 Claude 和 grep 并肩作战
管道组合 结构化输出让 Claude 和 grep 并肩作战系列第 2 篇 · 读完 6 分钟 · 前置第 1 篇 Headless 入门上篇说了claude -p单次调用。但这只是问一句答一句。真正的威力在于把 Claude Code 串进 Unix 工具链——让它输出机器可读的 JSON用jq解析和grep、cat肩并肩。Unix 管道 30 秒速成终端里每个命令有三个通道stdin标准输入 ↓ [ 命令进程 ] ↓ stdout标准输出管道|做的事很简单把左边命令的 stdout 接到右边命令的 stdinlssrc/|greptsx# ↑ 管道左边输出的内容变成右边读取的内容。Claude Code 怎么接入管道claude -p同时从两个来源读取信息管道 stdin“对什么做”数据/上下文前置-p参数“做什么”任务指令后置命令A 的 stdout -p 做这个操作 │ │ └──────────┬───────────────────────┘ ▼ ┌─────────────────┐ │ claude -p │ └────────┬────────┘ ▼ 终端输出 / 继续管道三种实战模式模式一喂数据进来# git diff 的输出 → Claude 审查gitdiffHEAD~3 -- src/|claude-p审查这些代码变更列出问题--allowed-toolsRead拆解git diff生成变更内容|传给 ClaudeClaude 读到 diff 审查指令输出问题列表。模式二拿结果出去claude-p列出所有 .tsx 文件的路径和用途\--output-format json --allowed-toolsBash,Read|jq.result--output-format json保证输出 合法 JSON不会带代码块标记jq .result提取 Claude 的文本回复。模式三两头都接cat/tmp/app.log|\claude-p分析这些日志输出所有错误。每条一行格式时间|类型|严重级别。纯文本不要 Markdown 标记。|\grephighcritical-errors.txt整条链路cat读文件 → Claude 分析 →grep筛严重错误 → 落盘。Claude Code 成了流水线里的一环。重要约束当 Claude 的输出要作为下一个命令的输入时prompt 里必须明确要求“纯文本不要 Markdown 标记”。否则 Claude 可能加 text 代码块标记grep会筛出错误结果。结构化输出别让 Claude 写作文我看到 3 个编译错误分别在 IconCard.tsx、TimelineZone.tsx 里……这种文本脚本没法解析——程序分不清3是错误数量还是其他数字。方法一prompt 约束 JSONclaude-p运行 npx tsc --noEmit根据结果输出 JSON {\errors\: 错误数,\files\: [有问题的文件名] } 只输出 JSON不要任何其他文字。--allowed-toolsBash--max-turns1五个约束技巧约束写法效果固定字段名errors,files不会出随机 key固定类型数量数字类型不会是字符串3禁止废话不要输出 JSON 以外的文字不会破坏 JSON 结构枚举值true/false二选一不会出现第三种值防代码块输出的第一个字符必须是 { 或 [最关键的约束——阻止 Claude 加 Markdown 代码块标记json加了 jq 直接报错方法二--json-schemaprompt 约束偶尔会失效。Claude Code 提供了原生 JSON Schema 校验——注意仍需在 prompt 中要求输出 JSONSchema 负责校验结构不负责让 Claude 决定输出格式claude-p检查编译错误输出 JSON\--json-schema{type:object,properties:{errors:{type:number},files:{type:array,items:{type:string}}},required:[errors,files]}\--allowed-toolsBash--max-turns1Schema 确保字段名、类型、必填项完全匹配你定义的规范——不会多字、不会少字、不会改 key 名。比纯 prompt 约束可靠得多。技巧Schema 手写麻烦时让 Claude 帮你写claude-p生成一个 JSON Schema描述 TypeScript 编译结果errors数字、files字符串数组、blocking布尔。只输出 Schema JSON。方法三--output-format json如果同时需要业务数据 session 元数据用这个claude-p检查编译错误--output-format json --allowed-toolsBash--max-turns1输出是完整 session JSON.result字段是 Claude 的文本回复prompt 约束--json-schema--output-format json可靠性偶尔带希望对你有帮助Schema 强制校验合法 JSON业务数据直接输出直接输出包在.result里元数据无无有适用简单的一次性脚本需要保证字段结构的场景需要监控/计费/调试jq 五招保底result{errors:3,files:[a.tsx,b.tsx],blocking:true}echo$result|jq.errors# 取值 → 3echo$result|jq-r.errors# 去引号 → 3echo$result|jq.files[]# 遍历数组echo$result|jq.files | length# 数组长度 → 2echo$result|jqkeys# 所有字段名实战编译检查 自动决策#!/bin/bashresult$(cd~/my-project\claude-p运行 npx tsc --noEmit输出 JSON 格式的编译结果\--json-schema{type:object,properties:{errors:{type:number},blocking:{type:boolean}},required:[errors,blocking]}\--allowed-toolsBash--max-turns1)blocking$(echo$result|jq-r.blocking)if[$blockingtrue];thenecho❌ 编译有阻塞性错误停止exit1fiecho✅ 通过继续...这里用--json-schema而不是--output-format json--json-schema让 Claude 直接把业务数据作为输出主体下游jq直接解析.blocking不需要从.result字符串里再取一层。同时 Schema 强约束了字段类型——errors一定是数字blocking一定是布尔不会有 prompt 约束那种偶尔带废话的风险。现在你的脚本能根据 Claude 的分析结果做自动决策了。下一篇[多步流水线 脚本实战] —— 把复杂任务拆成多步串成一条自动执行的流水线。系列目录共 4 篇从零到把 Claude Code 嵌入自动化脚本。

相关新闻

黄仁勋、梁文锋双双落榜,巴黎·希尔顿却上榜:从“谁没上榜“读懂TIME的AI百大

黄仁勋、梁文锋双双落榜,巴黎·希尔顿却上榜:从“谁没上榜“读懂TIME的AI百大

黄仁勋、梁文锋双双落榜,巴黎希尔顿却上榜:从"谁没上榜"读懂TIME的AI百大8月27日,《时代》周刊第四届AI百大人物榜揭晓,真正的爆点是"谁没上榜":连续三年入选的黄仁勋首次落榜,梁文锋、…

2026/10/25 22:17:56 阅读更多 →
Vue3 setup返回值详解:从模板渲染到响应式原理的完整指南

Vue3 setup返回值详解:从模板渲染到响应式原理的完整指南

很多同学在从 Vue2 切换到 Vue3 的时候,第一个绕不开的坎就是组合式 API 中的 setup 函数。而在 setup 里写完一堆变量和方法之后,到底要 return 什么、不 return 什么、为什么模板里拿不到数据,这些问题在初学阶段非常容易让人懵。本…

2026/11/5 9:14:48 阅读更多 →
静态网站托管-腾讯云开发 CloudBase

静态网站托管-腾讯云开发 CloudBase

1、打开官网:https://console.cloud.tencent.com/tcb/hosting 2、点击创建,免费适用6个月不要点,点立即购买 3、确认产品信息,别的不要选,点去支付。(虽然也显示6个月,但不用担心) 注…

2026/10/26 10:50:03 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/8 1:19:03 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/7 12:08:40 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/8 1:35:05 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/8 1:38:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/7 12:08:40 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/8 1:23:14 阅读更多 →

日新闻

周新闻

月新闻