grep如何只输出匹配的字符串,而不是输出一整行?

 我来答
百度网友5311d79
2012-03-21 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3258万
展开全部
grep没办法,sed 可以做到(-n选项加p命令)。
更多追问追答
追问
比如grep本来输出下面这一行:
adkj2 232dslasd hk_pe@163.com sadh
我该如何使用sed命令让他只输出
hk_pe@163.com
呢?
追答
sed '/hk_pe@163.com/ s/.* \([^ ]*@163.com\) .*/\1/' file.txt

/hk_pe@163.com/
先正则匹配过滤出包含hk_pe@163.com的行,格式: /正则/

再用替换命令 s/.../.../ 处理,\1 引用前面用 \( \) 括起来的组。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bbbf2b1
推荐于2018-03-04 · 超过13用户采纳过TA的回答
知道答主
回答量:38
采纳率:100%
帮助的人:21.7万
展开全部
使用参数-o
grep -o pattern file
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3138a58
2019-12-24 · TA获得超过2832个赞
知道大有可为答主
回答量:1万
采纳率:70%
帮助的人:622万
展开全部
如果这速度匹配的字符的话而不是说这一整行的话我觉得这个你需要输入的话进行一些规则性的调整可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
董琎毅
2013-03-30
知道答主
回答量:36
采纳率:0%
帮助的人:29.7万
展开全部
djy@game-rd10:~> echo "adkj2 232dslasd hk_pe@163.com sadh"|grep -o "hk_pe@163.com"
hk_pe@163.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奇兰7
2022-11-21
知道答主
回答量:1
采纳率:0%
帮助的人:307
展开全部
grep -o "xxxx"
选项o,only-matching : 只显示匹配PATTERN 部分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式