我需要为这样的东西解析文档:
#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 "/."
}
它就像第一个没有再解析它一样。
就是这样。谢谢!
=== edit ===
当然,我试图把它结合起来像
cat /path | grep -A 3 -m 1 service
但它也行不通。只返回一行。
=== edit ===
我需要只获得3行,而不是4行,因为它会在下一行再次找到它。
答案 0 :(得分:0)
你的正则表达式不够具体。也许像是
grep -A 3 '#.* service\.' /path