Вопрос:

извлечь строки из F1.sql до F2.sql

linux

11 просмотра

1 ответ

1 Репутация автора

У меня есть файл (f1.sql) с сотнями строк в нем. Я должен извлечь все строки, как отформатировано ниже из F1.sql и отправить его в другой файл, скажем f2.sql

ALTER TABLESPACE TEMP ADD TEMPFILE '/dat/ora/dw/temp01.dbf'
     SIZE 65535M REUSE AUTOEXTEND ON NEXT 134217728  MAXSIZE 65535M;

ключевые слова могут быть «ALTER TABLESPACE» для первой строки и «Next» для второй строки.

Автор: Lincon Источник Размещён: 22.08.2016 08:35

Ответы (1)


1 плюс

47685 Репутация автора

Вот sedрешение:

sed -n '/ALTER TABLESPACE/{N;/\n.*NEXT/p}' F1.sql > F2.sql

Он соответствует только последовательным парам линий.

Демо-версия:

$  cat F1.sql 
BLAH

ALTER TABLESPACE TEMP ADD TEMPFILE '/dat/ora/dw/temp01.dbf'
     SIZE 65535M REUSE AUTOEXTEND ON NEXT 134217728  MAXSIZE 65535M;

ALTER TABLESPACE THIS
     ONE WILL NOT MATCH

THIS ONE NEITHER
     ON NEXT WHATEVER

$  sed -n '/ALTER TABLESPACE/{N;/\n.*NEXT/p}' F1.sql 
ALTER TABLESPACE TEMP ADD TEMPFILE '/dat/ora/dw/temp01.dbf'
     SIZE 65535M REUSE AUTOEXTEND ON NEXT 134217728  MAXSIZE 65535M;
Автор: Lev Levitsky Размещён: 22.08.2016 11:28
Вопросы из категории :
32x32