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