The problem I have is that I have 23,000 records I need to sort through to pull out LEN: XXXX XX XX XX XX and NCOS: XXX entries from so I can insert them into a database. But some of my records include TYPE: ISDN, THE DN IS UNASSIGNED, or INVALID entries in between some records and I would like them to print where they are supposed to. Here is a sample of my records:
Code:
LEN: HOST 11 0 14 10
TYPE: SINGLE PARTY LINE
SNPA: 315
DIRECTORY NUMBER: 6320171
LINE CLASS CODE: IBN
IBN TYPE: STATION
CUSTGRP: KAFB SUBGRP: 0 NCOS: 16
SIGNALLING TYPE: DIGITONE
CARDCODE: 6X17AC GND: N PADGRP: ONS BNV: NL MNO: N
PM NODE NUMBER : 72
PM TERMINAL NUMBER : 459
OPTIONS:
3WC CLF RAG AVT PREMTBL DGT CND NOAMA CNAMD NOAMA NAME PUBLIC BLDG 3135
FUELS SPB 5406320171 CFI $ I
-------------------------------------------------------------------------------
INVALID LEN SPECIFIED FOR THE QLEN COMMAND.
INVALID LEN SPECIFIED FOR THE QLEN COMMAND.
INVALID LEN SPECIFIED FOR THE QLEN COMMAND.
THE DN IS UNASSIGNED
-------------------------------------------------------------------------------
LEN: HOST 13 1 16 22
TYPE: SINGLE PARTY LINE
SNPA: 315
DIRECTORY NUMBER: 6320063
LINE CLASS CODE: IBN
IBN TYPE: STATION
CUSTGRP: KAFB SUBGRP: 0 NCOS: 51
SIGNALLING TYPE: DIGITONE
CARDCODE: 6X17AC GND: N PADGRP: ONS BNV: NL MNO: N
PM NODE NUMBER : 77
PM TERMINAL NUMBER : 535
OPTIONS:
3WC COD CLF RAG LNR AVT PREMTBL DGT CND NOAMA CNAMD NOAMA NAME PUBLIC BLDN
220 SPB 5056320063 CPU 0 HOST 13 1 16 22 CFI 6344266 A
-------------------------------------------------------------------------------
INVALID LEN SPECIFIED FOR THE QLEN COMMAND.
THE DN IS UNASSIGNED
INVALID LEN SPECIFIED FOR THE QLEN COMMAND.
-------------------------------------------------------------------------------
LEN: RST3 01 0 13 14
TYPE: SINGLE PARTY LINE
SNPA: 315
DIRECTORY NUMBER: 6327103
LINE CLASS CODE: IBN
IBN TYPE: STATION
CUSTGRP: KAFB SUBGRP: 0 NCOS: 13
SIGNALLING TYPE: DIGITONE
CARDCODE: 6X17BA GND: N PADGRP: ONS BNV: NL MNO: N
PM NODE NUMBER : 107
PM TERMINAL NUMBER : 431
OPTIONS:
DTM CWT 3WC COD CLF RAG CWI LNR DGT NAME PUBLIC 7149 RM233 CFI $ I
-------------------------------------------------------------------------------
INVALID LEN SPECIFIED FOR THE QLEN COMMAND.
-------------------------------------------------------------------------------
I was using this script to do just that, but I cannot get NCOS: XXX to show up:
Code:
#/bin/bash
sed -nr "/LEN:|TYPE:\ ISDN|THE\ DN\ IS\ UNASSIGNED|INVALID/s/.*(HOST.{12}|RST1.{12}|RST2.{12}|RST3.{12}|RST4.{12}|ISDN|UNASSIGNED|INVALID).*/\1/p" FILE > NEWFILE
This script works great for pulling the LEN: XXXX XX XX XX XX and NCOS: XXX from my records.(btw I need ncos and len to be on the same line)
Code:
#!/bin/bash
sed -nr '/^LEN:/,/--------/{
/LEN:|CUST/s/.*(HOST.{12}|RST1.{12}|RST2.{12}|RST3.{12}|RST4.{12}|NCOS: [0-9][0-9]*).*/\1/p
}' FILE | sed -e '$!N' -e 's/\n/ /g' > NEW FILE
Any help would be greatly appreciated by my coworkers and myself considering this project is due Monday and we are only about 20% done. Thanks.