Предположительно, вы хотите удалить все строки комментариев, (начинающиеся с любого количества пробелов, за которыми следует #
), кроме челки -, которая должна находиться в первой строке для обнаружения..
Вы можете использовать ту же самую команду подстановки, если вы ограничите ее рассмотрением только всего, начиная со строки 2; в нотации sed
это диапазон 2,$
. Вы ограничиваете команды sed
диапазоном, добавляя к ним префикс этого диапазона :
sed "2,${/^\(\\s\)*\\#/d}"
или с кавычками оболочки, которые позволяют использовать более читаемые обратные пробелы и без ненужной группировки регулярных выражений:
sed -e '2,${/^\s*#/d}'
Вход:
#!/path/to/a/shebang-command
# This is the first comment
command 1
# another comment
command 2
# Final comment
Выход:
#!/path/to/a/shebang-command
command 1
command 2
Вы можете использовать потоковый редакторsed
sed -e 's/search1/replace1/' -e 's/search2/replace2/'
и так далее