#!/bin/sed -nf # /^label/!d # skip unless /^label/ /^label/{ # /^label/ section # read /^label/ ... /^append/ lines :loop N # read next line s/label ..\n// # erase abbreviated label s/label .. .*\n// # erase abbreviated label with some modification s/kernel.*\n// # erase /^kernel/ line /append/! b loop # read until /^append/ line # read 'append' line N # read /^append/ line s/append.*lang/lang/ # erase 'append' .. 'lang' in /^append/ line # post process s/label // # erase 'label ' s/\n/: / # convert 1st newline to ': ' s/\n$// # erase last newline } # /^slax/d # erase /^slax/ line /^linux/d # erase /^linux/ line /^$/!p # show unless null line d # clear pattern space for next cycle # # end of mlangs.sed