sed and awk not working on a large record file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed and awk not working on a large record file
# 1  
Old 01-29-2013
sed and awk not working on a large record file

Hi All,

I have a very large single record file.

Code:
abc;date||bcd;efg|......... pqr;stu||record_count;date

when i do wc -l on this file it gives me "0" records, coz of missing line feed.

my problem is there is an extra pipe that is coming at the end of this record
like
Code:
abc;date||bcd;efg|......... pqr;stu||record_count;date|

I want to take that extra pipe away. But, awk and sed not working for me.

awk - giving me error that record too long.
sed - tried a few flavours of sed and still not working.

I need this issue to be fixed ASAP. Can someone help me?

Last edited by Scrutinizer; 01-29-2013 at 10:33 AM.. Reason: code tags
# 2  
Old 01-29-2013
What you have tried with sed and awk..?

Code:
 
awk '{sub("\\|$","")}1' file

Code:
 
sed 's/|$//' file

# 3  
Old 01-29-2013
Yes Pamu, i tried both the commands that you shared and it didn't work.
# 4  
Old 01-29-2013
That file is not a valid Unix text file. You could try if this awk works anyway:
Code:
awk 'NR>1{print p}{p=$0} END{printf "%s\n", p}' RS=\| ORS=\| file

If it works, it should add a linefeed at the end..
# 5  
Old 01-29-2013
This command worked, but with an issue

Code:
||13455;2013-01-04 15:06:49|abc@ser01:/tmp/WrkSpc/Archive

||13455;2013-01-04 15:06:49
abc@ser01:/tmp/WrkSpc/Archive

wc -l on orig file returns
Code:
0 origfile

wc -l on output file returns
Code:
1 newfile

My job won't pick this newfile if it has a line feed.. how to remove the line feed after this command?

Last edited by Scrutinizer; 01-29-2013 at 11:08 AM.. Reason: code tags
# 6  
Old 01-29-2013
You could try to leave out the line feed:
Code:
awk 'NR>1{print p}{p=$0} END{printf "%s", p}' RS=\| ORS=\| infile

If it works that would produce another invalid text file..
# 7  
Old 01-29-2013
Hi Scrutinizer,
this seems to work:
Code:
cat newfile | tr -d "\n" | tr -d "\r" > newfile1

..

This I ran on top of your first command.. Do you c ne issues using this??

Last edited by Scrutinizer; 01-29-2013 at 11:16 AM.. Reason: code tags
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

How to split large file with different record delimiter?

Hi, I have received a file which is 20 GB. We would like to split the file into 4 equal parts and process it to avoid memory issues. If the record delimiter is unix new line, I could use split command either with option l or b. The problem is that the line terminator is |##| How to use... (5 Replies)
Discussion started by: Ravi.K
5 Replies

2. UNIX for Beginners Questions & Answers

sed awk: split a large file to unique file names

Dear Users, Appreciate your help if you could help me with splitting a large file > 1 million lines with sed or awk. below is the text in the file input file.txt scaffold1 928 929 C/T + scaffold1 942 943 G/C + scaffold1 959 960 C/T +... (6 Replies)
Discussion started by: kapr0001
6 Replies

3. Shell Programming and Scripting

Split a large file in n records and skip a particular record

Hello All, I have a large file, more than 50,000 lines, and I want to split it in even 5000 records. Which I can do using sed '1d;$d;' <filename> | awk 'NR%5000==1{x="F"++i;}{print > x}'Now I need to add one more condition that is not to break the file at 5000th record if the 5000th record... (20 Replies)
Discussion started by: ibmtech
20 Replies

4. Shell Programming and Scripting

SED/AWK to edit/add field values in a record

Hi Experts, I am new to shell scripting. Need some help in doing one task given by the customer. The sample record in a file is as follows: 3538,,,,,,ID,ID1,,,,,,,,,,, It needs to be the following: 3538,,353800,353800,,,ID,ID1,,,,,COLX,,,,,COLY, And i want to modify this record in... (3 Replies)
Discussion started by: sugarcane
3 Replies

5. Shell Programming and Scripting

How to delete 1 record in large file!

Hi All, I'm a newbie here, I'm just wondering on how to delete a single record in a large file in unix. ex. file1.txt is 1000 records nikki1 nikki2 nikki3 what i want to do is delete the nikki2 record in file1.txt. is it possible? Please advise, Thanks, (3 Replies)
Discussion started by: nikki1200
3 Replies

6. Shell Programming and Scripting

how to delete \n in a large file with sed

Hello i have a big file with a specific format and delimiter is "§" : §field1§$field2§$field3§$field4§$field5§$field6§$field§ in this file we have a field which are very long (more than 20000 chars !!!!) so through vi i cant manipulate them. despite this i managed to suppress lines that... (11 Replies)
Discussion started by: ade05fr
11 Replies

7. Shell Programming and Scripting

Updating a line in a large csv file, with sed/awk?

I have an extremely large csv file that I need to search the second field, and upon matches update the last field... I can pull the line with awk.. but apparently you cant use awk to directly update the file? So im curious if I can use sed to do this... The good news is the field I want to... (5 Replies)
Discussion started by: trey85stang
5 Replies

8. Shell Programming and Scripting

Sed or awk script to remove text / or perform calculations from large CSV files

I have a large CSV files (e.g. 2 million records) and am hoping to do one of two things. I have been trying to use awk and sed but am a newbie and can't figure out how to get it to work. Any help you could offer would be greatly appreciated - I'm stuck trying to remove the colon and wildcards in... (6 Replies)
Discussion started by: metronomadic
6 Replies

9. UNIX for Advanced & Expert Users

fatal: record too large

while running a script to process a file , it ended in termination . I able to find from the logs that it ended due to the error : fatal: record too large 20480 . Then I tried lots to fix the issue and left in vain . Can any one help me in finding reason for it ? . If you provide me a solution , I... (1 Reply)
Discussion started by: sakthifire
1 Replies

10. UNIX for Dummies Questions & Answers

Sed working on lines of small length and not large length

Hi , I have a peculiar case, where my sed command is working on a file which contains lines of small length. sed "s/XYZ:1/XYZ:3/g" abc.txt > xyz.txt when abc.txt contains lines of small length(currently around 80 chars) , this sed command is working fine. when abc.txt contains lines of... (3 Replies)
Discussion started by: thanuman
3 Replies
Login or Register to Ask a Question