如何用grep处理--help内容?提取route命令--help中含add的第二行(禁sed/awk)
不用sed/awk,用grep提取route --help中含"add"的第二行
嘿,这个需求我刚好能帮你搞定!完全不用sed或awk,靠grep搭配基础的行处理工具就能实现目标。
方法一:最简洁的实现
直接先过滤出所有含"add"的行,再精准提取第二行:
route --help | grep "add" | head -n 2 | tail -n 1
各部分作用:
route --help:输出route命令的完整帮助文档grep "add":筛出所有包含关键词"add"的行head -n 2:保留筛选结果的前2行tail -n 1:只留下这2行里的最后一行(也就是我们要的第二行)
方法二:纯grep+基础切割工具(更贴合"少工具"需求)
如果想尽量减少工具依赖,只靠grep和基础的cut工具(不属于sed/awk),可以用行号标记的方式:
grep -n "add" <(route --help) | grep "^2:" | cut -d: -f2-
各部分作用:
grep -n "add" <(route --help):给每个含"add"的行加上行号前缀(格式如2: 这是含add的第二行)grep "^2:":精准匹配行号为2的那一行cut -d: -f2-:去掉行号和冒号前缀,只保留后面的帮助文本
两种方法都能完美满足你的要求,第一种更直观好记,第二种则更贴近“仅用grep核心逻辑”的思路,你可以根据自己的习惯选~
内容的提问来源于stack exchange,提问作者DRP
相关产品推荐
相关产品推荐

