Here's a perl one liner:

perl -ne 'chomp; print; print qq{\n} if /\;$/'  file1.txt > newfile.txt

If isn't perfect.  An 'and' at the end of the line will be joined with
the beginning of the next line, which is not right. 

I use the following two regular expressions to create executable SQL
from v$sqltext.  You may find them useful if you explore your Perl options.

   $sql =~ s/
      (--\s*(([\w]+)\s+))?
      (?=
         and\s+[\w+\.+]+\s*(\=|between|\<\>|\!\=)
         |or\s+[\w+\.+]+\s*(\=|between|\<\>|\!\=)
         |where\s+[\w+\.+]+\s*(\=|between|\<\>|\!\=)
         |select
         |union
         |minus
         |intersection
         |from
         |where
         |order\s+by
         |group\s+by
      )
   /\n$5/gomix;

   $sql =~ s/(\s+
      --\s*where
      |--\s*from
      |--\s*group\s+by
      |--\s*order\s+by
      |--\s*select
      |--\s*union
      |--\s*minus
      |--\s*intersection
      #|select
      #|union
      #|minus
      #|intersection
      #|from
      #|where
      #|order\s+by
      #|group\s+by\s+
   )/\n$1/gomix;


Jared



On Tuesday 28 May 2002 20:58, Suhen Pather wrote:
> List, slightly off topic but
>
> Unix OS
>
> I need to join lines/ words in a file.
> So that it must be in a readable Oracle format.
>
> They are seperated by a newline.
>
> Here is a snippet of what the file looks like.
>
> FILE1
>
> delete from JDAPROD.HBI_LOST_SALES where SKU_TECHNICAL_KEY = 1410 and
> STORE_TECH
> NICAL_KEY = 276 and STORE_NO = 315 and STORE_NAME = 'Glenfield SB 315
> ' and SKU = '1516803' and SKU_NAME = 'WMERE ORGAN
> ISER Black ' and DEPT = '052' and DEPT_N
> AME = 'Travel Bags' and CLASS = '05211
> ' and CLASS_NAME = 'Travel Bags' a
> nd FORMAT_EXISTS = 'Y' and STOCK_ON_HAND = 2 and STOCK_IN_WAREHOUSE = 433
> and RE
> QUESTED_UNITS = 0 and ALLOCATED_UNITS = 0 and UNIT_SALES_CURRENT_DAY = 0
> and UNI
> T_SALES_LAST_7_DAYS = 0 and UNIT_SALES_LAST_6_WEEKS = 2 and ON_HAND_COST =
> 41.23
> 7 and ON_HAND_RETL = 167.333 and GROUP_NO = '05 ' and GROUP_NAME = '
> Travel' and EST_STOCK = 0 and INTRANSIT = 2 and DATE_RUN =
> TO_DATE('27MAY2002
> 00:00:00', 'DDMONYYYY HH24:MI:SS') and ON_ORDER = 150;
>
> I am trying using sed but cant seem to work it out.
>
> Any Ideas?
>
> Regards
> Suhen
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jared Still
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to