Почему я не могу объединить две [или более ..] пустые строки в одну пустую?

unix2dos файл

char метод очень сложен, когда дело доходит до чтения конфигурации как в UX (LF), так и в Windows (CRLF), даже на Mac (CR)

dos2unix для преобразования CRLF> LF

unix2dos для преобразования LF> CRLF

Notepad ++ позволяет вам искать и заменять эти

  • \ n = LF
  • \ r = CR
  • \ r \ n = CRLF

5
06.08.2011, 18:20
2 ответа

Альтернативный вариант использования awk для потомства, который позволяет вам лучше контролировать, выглядит примерно так:

cat file | awk 'BEGIN {sp=0} \
         {if (length($0)==1) {sp=sp+1} \
          if (sp>=1&&length($0)==1) {
          } else {
             for (i=1;i<=((3<sp)?3:sp);i++) {print ""}
             print $0; sp=0}
    }'

Это сжимает любое количество строк пробела (length($0)==1 ) на меньшее количество, но не обязательно на ноль (в данном случае на 3).

Таким образом, 1, 2 или 3 строки пустого пространства будут сохранены, но более 3 строк всегда будут сжаты до 3.

1
27.01.2020, 20:33

sed -e '/./b' -e :n -e 'N;s/\n$//;tn' infile

0
27.01.2020, 20:33

Теги

Похожие вопросы