Replace nulls with a value in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace nulls with a value in a file
# 1  
Old 09-10-2013
Replace nulls with a value in a file

Hi,

I've a PIPE delimited file with about 5 fields. Sometimes the records in the 4th field is null, so I want to replace it based on values we get it on 2nd field in the same file.

Following is an example.
Code:
ABCD|X-TYPE 3.0|2010|X-TYPE|20000
CDEF|C-TYPE 2.5|2011|C-TYPE|10000
XYZ|LX 4WD|2009|LX|20000
PQR|EX 4WD|2009||20000

on the 4th record, 4th field is null, so looking at its 2nd field value , I want to update the 4th field as EX. How can I do it using awk or sed.

Thanks,

Last edited by joeyg; 09-10-2013 at 03:54 PM.. Reason: Please wrap data and commands in CodeTags
# 2  
Old 09-10-2013
Code:
awk -F\| '$4=="" {$4=$2}1' OFS=\| file
ABCD|X-TYPE 3.0|2010|X-TYPE|20000
CDEF|C-TYPE 2.5|2011|C-TYPE|10000
XYZ|LX 4WD|2009|LX|20000
PQR|EX 4WD|2009|EX 4WD|20000

Code:
awk -F\| '$4=="" {split($2,a," ");$4=a[1]}1' OFS=\| file
ABCD|X-TYPE 3.0|2010|X-TYPE|20000
CDEF|C-TYPE 2.5|2011|C-TYPE|10000
XYZ|LX 4WD|2009|LX|20000
PQR|EX 4WD|2009|EX|20000

# 3  
Old 09-10-2013
Can we also do it at vi editor as we do global replacement? but using my scenario
# 4  
Old 09-10-2013
Why not use awk sed or a bash script?
My vi knowledge are limited and I try to avoid it Smilie
# 5  
Old 09-10-2013
Hello,
sed version:
Code:
sed 's/\(\([^|]*|\)\{2\}\([^|]*|\)\{1\}\)|/\1\2/'

under vi, just current line:
Code:
:s/\(\([^|]*|\)\{2\}\([^|]*|\)\{1\}\)|/\1\2/

under vi, all file:
Code:
:1,s/\(\([^|]*|\)\{2\}\([^|]*|\)\{1\}\)|/\1\2/

Regards.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Remove or truncate trailing nulls from file

I want to remove from a file the trailing null characters (0x00) and stop doing so when a different byte is found (which should not be deleted), and either put the result to the same file or a different one. Any ideas? (9 Replies)
Discussion started by: Tribe
9 Replies

2. Shell Programming and Scripting

Script that Nulls Contents of Files

Ok, I'm stuck here with a plan to get what I need done completed. I want to use perl to produce a document. lets say the document will be a pdf document. Now, is there a way for me to put a tiny little code in that pdf document that can make the pdf file null itself if run on a non-unix... (2 Replies)
Discussion started by: SkySmart
2 Replies

3. Red Hat

Counting columns in a delimited record with NULLs

I am trying to count the number of columns in a delimited flat file. The record is tab delimited. When I use the command wc -w, I am getting unexpected results when the record contains a NULL value. I believe it is because there is a "word" missing. The below example will return 4 words... (2 Replies)
Discussion started by: nmalencia
2 Replies

4. Shell Programming and Scripting

replace nulls with whitespaces in a file

Hi, i have a file which contains data in fixed length. each row contains data of 10 characters fixed length. The data in the file appears like 4567782882 some times i may recieve dat less than fixed length of 10. in such a case i find nulls appended at the trailing spaces when i do a... (2 Replies)
Discussion started by: meeragiri
2 Replies

5. Shell Programming and Scripting

sort truncates line when they contain nulls

When I try to sort a file where some records contain nulls i.e. hex 00 the sort truncates the record when it reaches the null and writes message: "sort: warning: missing NEWLINE added at end of input file myfile" I'm assuming from this that the sort sees the null as a special character and... (6 Replies)
Discussion started by: ArthurWaik
6 Replies

6. Shell Programming and Scripting

How to check Null values in a file column by column if columns are Not NULLs

Hi All, I have a table with 10 columns. Some columns(2nd,4th,5th,7th,8th and 10th) are Not Null columns. I'll get a tab-delimited file and want to check col by col and generate seperate error code for each col eg:102 if 2nd col value is NULL and 104 if 4th col value is NULL so on... I am a... (7 Replies)
Discussion started by: Mandab
7 Replies

7. Shell Programming and Scripting

Replacing nulls using sed

Hi, I am trying to replace nulls with spaces in every record of a '|' delimited file. I used this command - cat input.dat | sed 's/||/| |/g' > output But if a space appears twice '| | |' , then only the first null is getting replaced with a space. The second one remains as a null. I... (7 Replies)
Discussion started by: novice1324
7 Replies

8. Programming

Blanks vs: Nulls

I'm relatively new to Pro*C programming. In the following example: char name; EXEC SQL SELECT 'John Doe' INTO :name FROM DUAL; "John Doe" is in positions 0-7, blanks in 8-19, and a null in 20. I would really prefer the null to be in position 8 and I don't care what's after that. I wrote a... (1 Reply)
Discussion started by: ebock
1 Replies

9. UNIX for Dummies Questions & Answers

GREPing for Nulls

I just had a filesystem / file corruption issue on my HSP's server due to disk capacity limits and fileswapping. I discovered that certain files got corrupted when fileswapping was not successful and they ended up with a string of control characters, or what I believe to be nulls, in them. Does... (4 Replies)
Discussion started by: Dr. DOT
4 Replies
Login or Register to Ask a Question