Назад | Перейти на главную страницу

perl + sed + удалить строки, начинающиеся с "#"

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

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

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

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

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

.

   more file


   # aa a
       #  bbb 

      #xxx

это будет работать на linux, возможно, также на solaris

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

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

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

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

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