Additonal Line in Text File


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Additonal Line in Text File
# 1  
Old 12-13-2011
Additonal Line in Text File

I have a text file that is generated each morning and 9/10 runs perfectly. However, every now and again it fails and it is a nightmare to find the line that is corrupt as this job fails in the early hours when I am usually in a deep sleep.

The file is made up of a header record, a trailer record and in between 2 order lines which are in pairs.

For example...

Header - Starts with a 1
Order Line - Starts with a 2 [pair 1]
Order Line - Starts with a 3 [pair 2]
Trailer - Starts with a 4

The pattern in the file is therefore, 1,2/3, 2/3, 2/3, 2/3, 2/3,..................4

However occasionally we get an additional line starting with a 3 so we get....

1,2/3, 2/3, 2/3, 2/3,3, 2/3,..................4

I need to find an easy way to find out which line has the additional 3 record.
# 2  
Old 12-13-2011
I think you are mixing terms here a bit. Generally line is a record ending with a newline character and I can see only one such thing in your example. So your file contains only one line record? Can you post output of
Code:
cat -e file

?
# 3  
Old 12-13-2011
Code:
awk '/,3,/ { print "Extra 3 at line " NR; exit }' filename

# 4  
Old 12-13-2011
An abridged version with details amended to not give away customers details!

Quote:
120111204ORDERPLY000031980000031980
200000000000000472340NAPLAYER GBMR XXXXXXX XXXXXXXX 18,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816373R0000000000000000000000000000
3PLAYER15 000011000003000
200000000000000472340NAPLAYER GBMR XXXXXXX XXXXXXXX 218,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816374R0000000000000000000000000000
3PLAYER20 000011000004000
200000000000000472340NAPLAYER GBMR XXXXXXX XXXXXXXX 318,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000815958R0000000000000000000000000000
3PLAYER10 000011000002000
200000000000000472340 GBMR XXXXXXX XXXXXXXX 418,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816378R0000000000000000000000000000
3PLAYER20 000011000004000
200000000000000472340 GBMR XXXXXXX XXXXXXXX 518,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816379R0000000000000000000000000000
3PLAYER15 000011000003000
40000000351
# 5  
Old 12-13-2011
I'm guessing it is properly formated file. Can you show us corrupted one?
# 6  
Old 12-13-2011
The corrupted one would look like this ...

Quote:
120111204ORDERPLY000031980000031980
200000000000000472340NAPLAYER GBMR XXXXXXX XXXXXXXX 18,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816373R0000000000000000000000000000
3PLAYER15 000011000003000
200000000000000472340NAPLAYER GBMR XXXXXXX XXXXXXXX 218,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816374R0000000000000000000000000000
3PLAYER20 000011000004000
200000000000000472340NAPLAYER GBMR XXXXXXX XXXXXXXX 318,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000815958R0000000000000000000000000000
3PLAYER10 000011000002000
200000000000000472340 GBMR XXXXXXX XXXXXXXX 418,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816378R0000000000000000000000000000
3PLAYER20 000011000004000
200000000000000472340 GBMR XXXXXXX XXXXXXXX 518,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816379R0000000000000000000000000000
3PLAYER15 000011000003000
3PLAYER25 000011000003000
200000000000000472340 GBMR XXXXXXX XXXXXXXX 518,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816379R0000000000000000000000000000
3PLAYER15 000011000003000
200000000000000472340 GBMR XXXXXXX XXXXXXXX 518,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816379R0000000000000000000000000000
3PLAYER15 000011000003000
200000000000000472340 GBMR XXXXXXX XXXXXXXX 518,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816379R0000000000000000000000000000
3PLAYER15 000011000003000
200000000000000472340 GBMR XXXXXXX XXXXXXXX 518,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816379R0000000000000000000000000000
3PLAYER15 000011000003000
200000000000000472340 GBMR XXXXXXX XXXXXXXX 518,PARK WAY XXXXXXXX XXX XXX XXXX.XXXXXXX@BTINTERNET.COM 1923770212 0000000000000816379R0000000000000000000000000000
3PLAYER15 000011000003000
40000000351

Last edited by theref; 12-13-2011 at 12:35 PM.. Reason: Add additional records to show that the corruption could be anywhere in the file
# 7  
Old 12-13-2011
Try:
Code:
awk '/^2/{i=1}/^3/{i--}i<0{print NR}' file

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script UNIX to read text file line by line

i have a text file as belows, it includes 2 columns, 1st is the column name, 2nd is the file_name data_file.txt column_name file_name col1 file1 col2 file2 col3 file1 col4 file1 col5 file2 now, i would like to... (4 Replies)
Discussion started by: tester111
4 Replies

2. Shell Programming and Scripting

How to read a text file line by line and insert into a database table?

I have a test file that I want to read and insert only certain lines into the the table based on a filter. 1. Rread the log file 12 Hours back Getdate() -12 Hours 2. Extract the following information on for lines that say "DUMP is complete" A. Date B. Database Name C.... (2 Replies)
Discussion started by: JolietJake
2 Replies

3. Shell Programming and Scripting

Reading text file, comparing a value in a line, and placing only part of the line in a variable?

I need some help. I would like to read in a text file. Take a variable such as ROW-D-01, compare it to what's in one line in the text file such as PROD/VM/ROW-D-01 and only input PROD/VM into a variable without the /ROW-D-01. Is this possible? any help is appreciated. (2 Replies)
Discussion started by: xChristopher
2 Replies

4. UNIX for Dummies Questions & Answers

Extracting lines from a text file based on another text file with line numbers

Hi, I am trying to extract lines from a text file given a text file containing line numbers to be extracted from the first file. How do I go about doing this? Thanks! (1 Reply)
Discussion started by: evelibertine
1 Replies

5. Shell Programming and Scripting

PERL or SHELL Scrript to search in Directories by taking line by line from a text file

Unix box server version *********** >uname -r B.11.00 >echo $SHELL /usr/bin/ksh --> in this server, I have the path like /IMbuild/dev/im0serv1 ---> in that directory I have the folders startup(.jsp files nearly 100 jsp's ) and scripts(contains .js files nearly 100 files) ... (9 Replies)
Discussion started by: pasam
9 Replies

6. Shell Programming and Scripting

Shell script to read a text file line by line & process it...

Hi , I am trying to write an shell, which reads a text file (from a location) having a list of numbers of strictly 5 digits only ex: 33144 Now my script will check : 1) that each entry is only 5 digits & numeric only, no alphabets, & its not empty. 2)then it executes a shell script called... (8 Replies)
Discussion started by: new_to_shell
8 Replies

7. Shell Programming and Scripting

get the fifth line of a text file into a shell script and trim the line to extract a WORD

FOLKS , i have a text file that is generated automatically of an another korn shell script, i want to bring in the fifth line of the text file in to my korn shell script and look for a particular word in the line . Can you all share some thoughts on this one. thanks... Venu (3 Replies)
Discussion started by: venu
3 Replies

8. Shell Programming and Scripting

Search text from a file and print text and one previous line too

Hi, Please let me know how to find text and print text and its previous line. Please don't get irritated few days back I asked text and next line. I am using HP-UX 11.11 Thanks for your help. (6 Replies)
Discussion started by: kamranjalal
6 Replies

9. Shell Programming and Scripting

How to insert some constant text at beginig of each line within a text file.

Dear Folks :), I am new to UNIX scripting and I do not know how can I insert some text in the first column of a UNIX text file at command promtp. I can do this in vi editor by using this command :g/^/s//BBB_ e,g I have a file named as Test.dat and it containins below text: michal... (4 Replies)
Discussion started by: Muhammad Afzal
4 Replies

10. Shell Programming and Scripting

Adding specific text and spaces to each line in a text file

Hi, I wanted to add specific text to each row in a text file containing three rows. Example: 0 8 7 6 5 5 7 8 9 0 7 9 7 8 9 0 1 2 And I want to add a 21 at the beginning of the first row, and blank spaces at the beginning of the second two rows. To get this: 21 0 8 7 6 5 5 7 8... (4 Replies)
Discussion started by: hertingm
4 Replies
Login or Register to Ask a Question