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