我正在尝试读取与模式匹配的文件,但我想要的值在下一个连续的行中并且是动态的(意味着不同文件的值的数量不同)。有人可以帮助我使用sed实现这个逻辑吗?
文件1:
hosts:
- abc
- def
文件2:
hosts:
- abc
- def
- ghi
我想使用sed获取主机的值。 文件1的sed应该返回
- abc
- def
和file2的sed应该返回
- abc
- def
- ghi
感谢。
答案 0 :(得分:0)
cat file1 | tail -n+2
如果您只有一个行标题然后是主持人,将会这样做。
答案 1 :(得分:0)
这有点笨拙,但似乎有效:
sed -n -e ':a' -e '/\n$/{s/hosts:\n//; p;}' -e '/hosts/N' -e '/hosts/ b a' filename
答案 2 :(得分:0)
要在hosts
和下一个空白行之间打印行(如评论中所述):
sed '/^hosts/,/^$/{//d;}' file