Jump to content
Калькуляторы

Получить секцию, начинающуюся с определенной строки и заканчивающуюся пустой строкой

Есть примерно такой файл:

## Primary interface (localnet, internet, hotspot)

# localnet
auto eth1.20
iface eth1.20 inet static
address 1.2.3.4
netmask 255.255.255.0
up   route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.2.3.250
down route del -net 10.0.0.0 netmask 255.0.0.0 gw 10.2.3.250

# internet
auto eth1.100
iface eth1.100 inet static
address 5.6.7.8
netmask 255.255.255.128
up   route add default gw 5.6.7.9
down route del default gw 5.6.7.9

# private
auto eth1.900
iface eth1.900 inet static
address 11.12.13.14
netmask 255.255.0.0

# linknet
auto eth1.390
iface eth1.390 inet static
address 21.22.23.24
netmask 255.255.255.0

 

Мне нужно получить из нее эту секцию:

# private
auto eth1.900
iface eth1.900 inet static
address 11.12.13.14
netmask 255.255.0.0

то есть блок строк, начинающийся с "# private" и оканчивающийся пустой строкой или концом файла.

Думаю что для этого нужно использовать sed, но с этим инструментом знаком слабо.

Не подскажите, как получить нужное?

Share this post


Link to post
Share on other sites

man awk

man sed

man grep

 

На опеннете есть раздел программирования, там бывают специалисты.

 

Пример:

grep "# private" -A 4 file
или 
grep "# private" -A 5 file | grep -V ^$ 

Edited by vlad11

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.