Cut Data In Bigfile with Perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Cut Data In Bigfile with Perl
# 1  
Old 10-07-2010
Cut Data In Bigfile with Perl

I want to create new file for START-END
but i know NO 0003/02 only one in file

Ex. Data FILE Data.txt (Data ~1,000,000 Line)

Quote:
START
NO 0001/01
HEAD AAAA
BODY1 AAA
TAIL AAA
END
START

NO 0001/03
HEAD AAAA
BODY1 AAA
BODY2 AAA
TAIL AAA
END
START
SUBSTART

NO 0002/02
HEAD AAAA
BODY1 AAA
BODY4 AAA
TAIL AAA
SUBEND
SUBSTART

NO 0003/02
HEAD AAAA
BODY1 AAA
BODY2 AAA
TAIL AAA
SUBEND
SUBSTART

NO 1005/02
HEAD AAAA
BODY1 AAA
TAIL AAA
SUBEND
END

START
NO 0004/01
HEAD AAAA
BODY1 AAA
BODY2 AAA
BODY3 AAA
BODY4 AAA
TAIL AAA
END
START
NO 0006/02
HEAD AAAA
BODY1 AAA
BODY2 AAA
TAIL AAA
END
I use Script perl
Code:
perl -lne '$/="END";print $_."END" if /0003\/02/' file

Out put script perl
Quote:
SUBSTART
NO 0003/02
HEAD AAAA
BODY1 AAA
BODY2 AAA
TAIL AAA
SUBEND
but I want create Out put All No in START-END have NO 0003/02 Please Help
Thank you
Quote:
START
SUBSTART
NO 0002/02
HEAD AAAA
BODY1 AAA
BODY4 AAA
TAIL AAA
SUBEND
SUBSTART
NO 0003/02
HEAD AAAA
BODY1 AAA
BODY2 AAA
TAIL AAA
SUBEND
SUBSTART
NO 1003/02
HEAD AAAA
BODY1 AAA
TAIL AAA
SUBEND
END
# 2  
Old 10-07-2010
by awk
Code:
awk ' /^START/ {s=""} /NO 0003\/02/ {p=1} /^END/&&p {print s RS $0;p=0} {s=s RS $0}' infile

This User Gave Thanks to rdcwayx For This Post:
# 3  
Old 10-07-2010
Quote:
awk '/^START/ {s=""} /NO 0003\/02/ {p=1} /^END/&&p {print s RS $0;p=0} {s=s RS $0}' gg.txt
awk: syntax error near line 1
awk: bailing out near line 1
Error
and awk Slow in Data > 1,000,000 Line
i want use perl Script
# 4  
Old 10-07-2010
in solaris, use nawk or /usr/xpg4/bin/awk
This User Gave Thanks to rdcwayx For This Post:
# 5  
Old 10-07-2010
Script nawk is OK thank you
Please help Edit in perl Script
Code:
 nawk '/^START/ {s=""} /NO 0003\/02/ {p=1} /^END/&&p {print s RS $0;p=0} {s=s RS $0}' gg.txt

# 6  
Old 10-07-2010
Code:
perl -lne '$/="END";print $_."END" if /0003\/02/' file

For the above code END matches with SUBEND

So you add carriage return (\n) in your code
Code:
perl -lne '$/="\nEND";print $_."\nEND" if /0003\/02/' file

Is it ok?
This User Gave Thanks to k_manimuthu For This Post:
# 7  
Old 10-07-2010
A perl one:

Code:
perl -ne '$a=$a.$_;if(/^START/){$a=$_;$i=1}if(/NO 0003\/02/){$p=1};if (/^END/ && $i && $p){print $a;$p=0}' infile

This User Gave Thanks to Klashxx For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. What is on Your Mind?

Cut Over to New Data Center and Upgraded OS Done. :)

Three days ago we received an expected notice from our long time data center that they were going dark on Sept 12th. About one and a half hours ago, after three days of marathon work, I just cut over the unix.com to a new data center with a completely new OS and Ubuntu distribution. (22 Replies)
Discussion started by: Neo
22 Replies

2. Shell Programming and Scripting

Cut the data with a string that has \ in it

Hi Team, Here's the record in a file. abc\USER DEFINED\123\345\adf\aq1 Delimiter here is "\USER DEFINED\" Expected output: abc|123\345\adf\aq1 Find "\USER DEFINED\" and replace it with "|". Can anyone please help us to fix this issue? Please use CODE tags as required by... (5 Replies)
Discussion started by: kmanivan82
5 Replies

3. Shell Programming and Scripting

Need to cut a some required data from file

Data_Consolidation_Engine_Part_2_Job2..TgtArBkt: ORA-00942: table or view does not exist I have some thing like above in the file.. Upto this portion Data_Consolidation_Engine_Part_2_Job2..TgtArBkt: the length can be vary .. Can some one help me in taking this portion alone ORA-00942:... (7 Replies)
Discussion started by: saj
7 Replies

4. Shell Programming and Scripting

Cut and paste data in new file

HI Guys, I have file A: Abc XyZ Abc Xyz Kal Kaloo Abc XyZ Abc Xyz Kalpooo Abc XyZ Abc Xyz Kloo Abc Abc Klooo I want file B Abc XyZ Abc Xyz Kal Kaloo Abc XyZ Abc Xyz Kalpooo Abc XyZ Abc Xyz Kloo File A is now 1 lines Abc Abc Klooo Cut all lines which have xyz... (2 Replies)
Discussion started by: asavaliya
2 Replies

5. UNIX for Dummies Questions & Answers

Data manipulation with cut command

Hi, I need some help with the cut command, can i use it to cut a certain number of characters from string starting from the end. say my string is like this some junk data xyz1@pqr.com xyz2@pqr.com some more junk data I can't exactly say how many email addresses are present in between. But the... (4 Replies)
Discussion started by: poojabhat
4 Replies

6. Shell Programming and Scripting

perl search string for cut data

perl -lne '$/="1H1XXXXX";print $_ if /0001|0002|0003/' data.txt> output.txt more data.txt 1H1XXXXX|0001|Y| aaa bbb ccc 1H1XXXXX|0005|N| bbb g 1H1XXXXX|0001|Y| hhh ddd 222 1H1XXXXX|0002|Y| 444 1H1XXXXX|0002|N| 222 1H1XXXXX|0003|Y| hhhh (3 Replies)
Discussion started by: kittiwas
3 Replies

7. Shell Programming and Scripting

Cut column and edit data

Mar 26 12:32:53 name sshd: 192.168.1.14 Mar 27 12:42:53 name sshd: 192.168.1.14 how to make this data in output as: "Mar 26 12:32:53","name","sshd","192.168.1.14" "Mar 27 12:42:53","name","sshd","192.168.1.14" anyone plzz help me out!!!!!!!!!!!!!! (4 Replies)
Discussion started by: jacky29
4 Replies

8. Shell Programming and Scripting

How to cut some data from big file

How to cut data from big file my file around 30 gb I tried "head -50022172 filename > newfile.txt ,and tail -5454283 newfile.txt. It's slowy. afer that I tried sed -n '46467831,50022172p' filename > newfile.txt ,also slow Please recommend me , faster command to cut some data from... (4 Replies)
Discussion started by: almanto
4 Replies

9. Shell Programming and Scripting

Cut Data In Bigfile

I want to create new file for 'NO 0004/01' and 'NO 0005/01' only How can i do It for shot time Data FILE Data.txt (Data ~1,000,000 Line) START NO 0001/01 HEAD AAAA BODY1 AAA BODY2 AAA TAIL AAA END START B1 NO 0001/02 HEAD AAAA BODY1 AAA BODY2 AAA BODY3 AAA TAIL AAA (2 Replies)
Discussion started by: kittiwas
2 Replies

10. Shell Programming and Scripting

Cut data and put it in next line

here is my sample file dn: cn=Anandmohan Singh,ou=addressbook,dc=thbs,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: Anandmohan Singh givenName: Anandmohan mail: anand_ms@thbs.com mobile: 9986010455 ou: null... (16 Replies)
Discussion started by: namishtiwari
16 Replies
Login or Register to Ask a Question