Удалить перевод строки возврата каретки из строки, соответствующей шаблону регулярных выражений с помощью awk

#regex #awk

#регулярное выражение #awk

Вопрос:

У меня следующая ситуация, когда я хотел бы удалить перевод строки возврата каретки из строки, где следующая строка начинается с определенного шаблона.
В приведенном ниже примере «следующая строка» начинается с «.» с x количеством пробелов перед «.»
Я хотел бы удалить перевод строки возврата каретки в конце предыдущей строки вместе с пробелами перед «».

 Query.FieldByName('dataField')
        .AsString;
  

После применения скрипта awk код должен выглядеть следующим образом

 Query.FieldByName('dataField').AsString;
  

С уважением

Ответ №1:

У меня есть это:

 awk '/^s*./{sub(/^s*/,"");printf "%s",$0;next}
             {printf "%s%s",(NR==1?"":RS),$0}END{print ""} ' file
  

например:

 kent$  cat f
foo
.bar
  .bar2
xyz
                .abc

kent$  awk '/^s*./{sub(/^s*/,"");printf "%s",$0;next}{printf "%s%s",(NR==1?"":RS),$0}END{print ""} ' f
foo.bar.bar2
xyz.abc