Substituição múltipla - usando sed ou awk

0

Eu tenho um trecho de código como abaixo

CREATE TABLE TABLE1(
  ID integer NOT NULL,
  ROW_CREATED varchar (26) NULL,
  BATCH_LOG_ID integer NULL,
  TRANSACTION_TYPE varchar(5) NULL,
  PARTITION_COL integer NOT NULL
) ON BASE_PARTITION (PARTITION_COL);

Eu quero mudar o código como abaixo

CREATE TABLE TABLE1(
  ID integer NOT NULL,
  ROW_CREATED varchar (26) NULL,
  BATCH_LOG_ID integer NULL,
  TRANSACTION_TYPE varchar(5) NULL
) PARTITIONED BY (PARTITION_COL integer NOT NULL); 

Isso pode ser feito usando um sed ou awk?

    
por Koushik Chandra 09.04.2015 / 13:44

1 resposta

0

'BEGIN{f=0} ; { if ($0 ~ "TRANSACTION_TYPE varchar\(5\) NULL,") { print ; printf("%-s", ") PARTITIONED BY (PARTITION_COL integer NOT NULL);") ; f=1 } else if (f==0) print }' inputfile

Isto imprimirá as linhas do arquivo de entrada até que ele atinja a linha com "varchar (5)", onde será impressa a linha seguida da nova linha "PARTITIONED BY".

    
por 27.12.2015 / 20:26

Tags