alibek Posted May 29, 2014 Есть примерно такой файл: ## 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, но с этим инструментом знаком слабо. Не подскажите, как получить нужное? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted May 29, 2014 (edited) man awk man sed man grep На опеннете есть раздел программирования, там бывают специалисты. Пример: grep "# private" -A 4 file или grep "# private" -A 5 file | grep -V ^$ Edited May 29, 2014 by vlad11 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
bos9 Posted May 29, 2014 (edited) sed -n '/# private/,/^$/p' /etc/network/interfaces Edited May 29, 2014 by bos9 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted May 30, 2014 Я так сделал: sed -ne '/^# private$/,/^$/p' Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...