Jump to content

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


Recommended Posts

Posted

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

## 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, но с этим инструментом знаком слабо.

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

Posted (edited)

man awk

man sed

man grep

 

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

 

Пример:

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

Edited by vlad11

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.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.