Perl + Sed + удалить строки, которые начинаются с "#"

Пожалуйста посоветуй

У меня есть машины Linux и Solaris, и мне нужна команда, которая работает на обеих ОС

Я использую следующую строку perl, чтобы удалить все строки, начинающиеся с "#", почему команда perl не работает,

примечание - необходимо также поддерживать строки, начинающиеся с пробела или TAB, а затем "#"

 perl -i -pe 'next if /^ *#/' file

,

   more file


   # aa a
       #  bbb 

      #xxx

1 ответ

Решение

Это будет работать на Linux, может быть, также на Solaris

sed -e '/^\s*#/d' file

РЕДАКТИРОВАТЬ: Если \s не поддерживается, может быть, это будет работать...

sed -e '/^[ \t]*#/d' file

Для этого в файле просто добавьте -i в команду

Если вы не хотите, чтобы в результате было несколько последовательных пустых строк, просто передайте его через uniq

Другие вопросы по тегам