Форматирование вывода сценария оболочки

Я понял, как передать переменную в шаблоне внутри переменной внутри awk:

grep_line_new_file='create table "informix".issue'
new_file_below=`awk 'BEGIN { FS="\n[()]"; RS=";" } /'"$grep_line_new_file"'/ { print ")"$NF";"}' test`

вывод:

create table "informix".issue
) in datadbs extent size 16 next size 16 lock mode row;
0
27.04.2017, 16:10
3 ответа
perl -0pe 's/\h+\d+\h*\n\h+/,/g;  s/\h+\d+//g' ex
  • первая замена заменяет числа, за которыми следуют \n...пробелы на ,
  • вторая замена удаляет остальные числа.
0
28.01.2020, 02:16
perl -lane '
   if ( @F == 4 ) {                 # num fields are 4
      print $result if $. > 1;      # in case we"re not @ BOF, show result
      $result = join "\t", @F[0,2]; # initialize result
   } else {
      $result .= ",$F[0]";          # append result
   }
   eof && print $result;            # on the last line, show result
' filename
1
28.01.2020, 02:16

Стандартное awkрешение:

awk 'NF==4 && NR>1 {printf "\n" ; } 
     NF==4 { printf "%-10s %s",$1,$3} 
     NF==2 { printf ",%s",$1} 
     END   { printf "\n" ; } '

где

  • NFномер поля (номер столбца ),
  • NRномер записи (номер строки ),
  • различные условия выбирают, что печатать,
  • printfне печатает завершающую новую строку.
4
28.01.2020, 02:16

Теги

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