【发布时间】:2017-03-17 16:28:22
【问题描述】:
我需要为这样的东西解析文档:
#00 service.
log: servicelogin
pass: password
别担心,文件已加密并与系统分离 :) 所以你看到第一行和第二行都有“服务”,所以这样做:
cat /path | grep -A 3 service
两次找到服务时返回 4 行。
但是,在终端输入这个命令:
cat /path | grep -A 3 service | grep -A 3 -m 1 "/."
像魅力一样工作。
但是!因为我需要在最后输入“服务”,所以别名不够好。所以我创建了一个函数:
function do-stuff {
cat /path | grep -A 3 $1 | grep -A 3 -m 1 "/."
}
它就像第一个一样工作,无需再次解析。
就是这样。谢谢!
=== 编辑 ===
当然,我尝试过像这样组合它
cat /path | grep -A 3 -m 1 service
但这也行不通。只返回一行。
=== 编辑 ===
我只需要获取 3 行,而不是 4 行,因为它会在下一行再次找到它。
【问题讨论】:
-
了解你想要的结果会很有帮助。
标签: linux bash parsing text grep