B
bcdixit
i have a file with the following sample text
1 create table xyz
2 no before journal,
3 no after journal
4 (
5 col1 integer,
6 col2 integer,
7 ...
8 coln varchar(10)
9 )
10;
i want to use perl regex to search and replace text from the line that
starts with 'create' word till the first opening bracket i.e the '('
with blanks or rather delete the lines altogether.
the output should look something like this.
1 col1 integer,
2 col2 integer,
3 ...
4 coln varchar(10)
5 )
6;
the input file could also have the following scenarios..
1 create table xyz no before journal,
2 no after journal
3 (
4 col1 integer,
5 col2 integer,
6 ...
7 coln varchar(10)
8 )
9;
OR
1 create table xyz no before journal,
2 no after journal (
3 col1 integer,
4 col2 integer,
5 ...
6 coln varchar(10)
7 )
8;
OR
1 create table xyz
2 (
3 col1 integer,
4 col2 integer,
5 ...
6 coln varchar(10)
7 )
8;
the only certainty is that line starts with the 'create' word. THERE
COULD BE ANY WORDS BETWEEN THE 'CREATE' AND THE '(' .
so in short, i want the search to look for any line that begins with
the 'create' word and then continue the search till the first '(' and
replace the match with deleted lines.
I know how to use perl regex to search for one line at a time but not
if the condition could be across multiple lines.
any help will be greatly appreciated.
thanks
1 create table xyz
2 no before journal,
3 no after journal
4 (
5 col1 integer,
6 col2 integer,
7 ...
8 coln varchar(10)
9 )
10;
i want to use perl regex to search and replace text from the line that
starts with 'create' word till the first opening bracket i.e the '('
with blanks or rather delete the lines altogether.
the output should look something like this.
1 col1 integer,
2 col2 integer,
3 ...
4 coln varchar(10)
5 )
6;
the input file could also have the following scenarios..
1 create table xyz no before journal,
2 no after journal
3 (
4 col1 integer,
5 col2 integer,
6 ...
7 coln varchar(10)
8 )
9;
OR
1 create table xyz no before journal,
2 no after journal (
3 col1 integer,
4 col2 integer,
5 ...
6 coln varchar(10)
7 )
8;
OR
1 create table xyz
2 (
3 col1 integer,
4 col2 integer,
5 ...
6 coln varchar(10)
7 )
8;
the only certainty is that line starts with the 'create' word. THERE
COULD BE ANY WORDS BETWEEN THE 'CREATE' AND THE '(' .
so in short, i want the search to look for any line that begins with
the 'create' word and then continue the search till the first '(' and
replace the match with deleted lines.
I know how to use perl regex to search for one line at a time but not
if the condition could be across multiple lines.
any help will be greatly appreciated.
thanks