Split a Big Report.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Split a Big Report.
# 15  
Old 01-22-2008
hi ranjithpr,

The problem is solved, since I don't know what happen for the source. However, I can solved now. Thanks a lot.
# 16  
Old 01-23-2008
awk

Hi,

Try follow awk or nawk. This is just for your reference and not fully meets your requirements, you can amend it to address your issues.

Code:
nawk 'BEGIN{
FS=":"
n=1
}
{
l[NR]=$0
if (index($0,"BE NO:")!=0 && file[$2]=="")
{
	file[$2]=NR
	num[n]=$2
	n=n+1
}
}
END{
for (i=1;i<n;i++)
{
	print "Report_"num[i]".txt"
	if (i<n-1)
	{
		for (j=file[num[i]]-1;j<file[num[i+1]]-1;j++)
			print l[j]
		print ""
	}
	else
	{
		for(j=file[num[i]]-1;j<=FNR;j++)
			print l[j]
	}
}
}' filename

# 17  
Old 01-23-2008
Thanks summer_cherry, I will try it!!

Actually, I have another question!!!
Let say my report.lis file like the following:

LINE # Report_code
1
2
3
4
5 Report No.: AAA
6
7 BE NO: 111
8
9 asfsdflsjdfklsdjfklsjfklsfsflsjdlk
10 fsdfjsfkjsklfsfj
11
12
13
14
15 Report No.: AAA
16
17 BE NO: 111
18
19 sdfsdfjsdklfjsfkj
20 fsdflkjsdfklsjkl
21
22
23
24
25 Report No.: AAA
26
27 BE NO: 222
28
29 dadaskdhasdjkd
30 dashdjkashdjhajkh
31
32
33
34
35 Report No.: AAA
36
37 BE NO: 222
38
39 dasdjaklsdjkladjkla
40 daskdjaskldjakldjklaj
41
42
43
44
45 Report No.: AAA
46
47 BE NO: 333
48
49 ddasdjaskldjkladjklasj
50 daskdjaskldjaskldj
51
52
53
54
55 Report No.: AAA
56
57 BE NO: 333
58
59 djakdadjaklsjdjak
60 dakdjakljdklajklsd
61
62
63
64
65 .................
66 .................
67 .................

you may find that the report got some lines from the very beinging report.

When I applied the unix script from ranjithpr, I got the following errors:
nawk: null file name in print or getline
input record number 1
source line number 9

Please help!!!!! Thanks....
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Split a big file system to several files

Gents Actually I have question and i need your support. I have this NAS file system mounted as /coresys has size of 7 TB I need to Split this file system into several file systems as mount points I mean how to can I Split it professionally to different NAS mount points how to can I decide... (2 Replies)
Discussion started by: AbuAliiiiiiiiii
2 Replies

2. Shell Programming and Scripting

Split Big XML file Base on tag

HI I want to split file base on tag name. I have few header and footer on file <?xml version="1.33" encing="UTF-8"?> <bulkCmConfigDataFile" <xn:SubNetwork id="ONRM_ROOT"> <xn:MeContext id="PPP04156"> ... (4 Replies)
Discussion started by: pareshkp
4 Replies

3. Shell Programming and Scripting

Split a big file into multiple files using awk

this thread is a continuation from previous thread https://www.unix.com/shell-programming-and-scripting/223901-split-big-file-into-multiple-files-based-first-four-characters.html ..I am using awk to split file and I have a syntax error while executing the below code I am using AIX 7.2... (4 Replies)
Discussion started by: etldev
4 Replies

4. HP-UX

How to split big file on HP-UX and join on Windows?

Hi HP-admins, I have 120GB file on HP-UX and need to split to 4GB pieces and join them on Windows. As I don't want to use zipsplit, tried to use split command and join on windows using "copy /b" but it doesn't work (It merges and creates new file but file is corrupt) What is the correct... (6 Replies)
Discussion started by: prvnrk
6 Replies

5. Shell Programming and Scripting

Split a big file into multiple files based on first four characters

I have a requirement to split a huge file to smaller text files based on first four characters which look like ABCD 1234 DFGH RREX : : : : : 0000 Each of these records are OF EQUAL bytes with a different internal layout based on the above first digit identifier.. Any help to start... (5 Replies)
Discussion started by: etldev
5 Replies

6. Shell Programming and Scripting

Need to Split Big XML into multiple xmls

Hi friends.. We have urgent requirement.We need to split the big xml having multiple orders into multiple xmls having each order in each xml. For Example In input XMl will be in following format with multiple line orders.. <OrderDetail BillToKey="20100805337" Createuserid="CreateGuestOrder"... (8 Replies)
Discussion started by: dprakash
8 Replies

7. UNIX for Advanced & Expert Users

Split a big file into two others files

Hello, i have a very big file that has more then 80 MBytes (100MBytes). So with my CVS Application I cannot commit this file (too Big) because it must have < 80 MBytes. How can I split this file into two others files, i think the AIX Unix command : split -b can do that, buit how is the right... (2 Replies)
Discussion started by: steiner
2 Replies

8. Shell Programming and Scripting

perl help to split big verilog file into smaller ones for each module

Hi I have a big verilog file with multiple modules. Each module begin with the code word 'module <module-name>(ports,...)' and end with the 'endmodule' keyword. Could you please suggest the best way to split each of these modules into multiple files? Thank you for the help. Example of... (7 Replies)
Discussion started by: return_user
7 Replies

9. Shell Programming and Scripting

Help Needed : Split one big file to multiple files

Hi friends, I have data in flat file as following, first filed is the customer number. We have almost 50-100 customers in the system 100 ABC A123 100 BVC D234 100 BNC N324 200 CBC A122 200 AVC D294 200 HNC N324 300 GBC A173 300 FVC D234 300 DNC N344 I want to split the file and... (5 Replies)
Discussion started by: monicasgupta
5 Replies

10. UNIX for Dummies Questions & Answers

Split BIG report using nawk

I have the following nawk script: nawk -F: '{ if($0 ~ "^Report No") {fl=1; i=0;} if(fl==1){data=$0; i++} if($0 ~ "^BE NO:") { fname = "reprot_"$2".lis"; gsub(" ","",fname); for(j=0;j<i;j++) print data > fname; fl=0; } else if(fl==0) print $0 > fname; }' filename When I try to apply... (1 Reply)
Discussion started by: raychu65
1 Replies
Login or Register to Ask a Question