how to Insert values in multiple lines(records) within a pipe delimited text file in specific cols


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to Insert values in multiple lines(records) within a pipe delimited text file in specific cols
# 1  
Old 11-13-2011
how to Insert values in multiple lines(records) within a pipe delimited text file in specific cols

this is Korn shell unix.
The scenario is I have a pipe delimited text file which needs to be customized. say for example,I have a pipe delimited text file with 15 columns(| delimited) and 200 rows. currently the 11th and 12th column has null values for all the records(there are other null columns as well). I want to fill the 11 and 12 columns in all the 200 records with <word1> and <word2>. <word1> and <word2> are same for all rows like Copay|Dendrite. Pls help!!
Can this be accomplished using sed or grep patterns.

Thnaks,
Kumar
# 2  
Old 11-13-2011
Quote:
Originally Posted by vasan2815
this is Korn shell unix.
The scenario is I have a pipe delimited text file which needs to be customized. say for example,I have a pipe delimited text file with 15 columns(| delimited) and 200 rows. currently the 11th and 12th column has null values for all the records(there are other null columns as well). I want to fill the 11 and 12 columns in all the 200 records with <word1> and <word2>. <word1> and <word2> are same for all rows
Code:
awk 'BEGIN{FS=OFS="|"}{$11="word1";$12="word2"}1' file

This User Gave Thanks to danmero For This Post:
# 3  
Old 11-13-2011
Code:
perl -F"\|" -plane '@F[10,11]=qw(word1 word2);$_=join"|",@F' your_file

tyler_durden

---------- Post updated at 01:23 AM ---------- Previous update was at 01:11 AM ----------

Code:
perl -plane 's/^((.*?\|){10})\|(.*?)$/$1word1|word2$3/' your_file

# 4  
Old 11-14-2011
the code replaces the header columns also

thanks the awk code works. But the code replaces the header columns also. The very first line in the file is the header containing column names.
The code should ignore the first line and handle the rest of records. how to do that? Sorry I should have been cleared earlier.
Code:
awk 'BEGIN{FS=OFS="|"}{$11="word1";$12="word2"}1' file

Thanks
Vasanth

Last edited by Scott; 11-14-2011 at 06:13 AM.. Reason: Please use code tags
# 5  
Old 11-14-2011
Quote:
Originally Posted by vasan2815
thanks the awk code works. But the code replaces the header columns also. The very first line in the file is the header containing column names.
The code should ignore the first line and handle the rest of records. how to do that? Sorry I should have been cleared earlier.
Code:
awk 'BEGIN{FS=OFS="|"}NR>1{$11="word1";$12="word2"}1' file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Need help on an old post - How to convert a comma delimited string to records or lines of text?

Hi, Apologies in advance to the moderator if I am posting this the wrong way. I've searched and found the solution to an old post but as it is a very old post, I don't see an option to update it with additional question. The question I have is in relation to the following post: How to... (6 Replies)
Discussion started by: newbie_01
6 Replies

2. UNIX for Dummies Questions & Answers

Need to convert a pipe delimited text file to tab delimited

Hi, I have a rquirement in unix as below . I have a text file with me seperated by | symbol and i need to generate a excel file through unix commands/script so that each value will go to each column. ex: Input Text file: 1|A|apple 2|B|bottle excel file to be generated as output as... (9 Replies)
Discussion started by: raja kakitapall
9 Replies

3. Shell Programming and Scripting

Insert empty columns inside a pipe delimited file

Hi All , I have pipe delimiter file with 11 columns . I need to insert 4 empty columns after column 10 . and After 11 column I need to insert a column which is having the same value for all the rows . My file 1|2|3|4|5|6|7|8|9|10|11 New file ... (11 Replies)
Discussion started by: Hypesslearner
11 Replies

4. UNIX for Dummies Questions & Answers

How to convert a comma delimited string to records or lines of text?

Hi, I am not sure if I've posted this question before. Anyway, I previously asked about converting lines of text into a comma delimited string. Now I am needing to do the other way around ... :( :o Can anyone advise how is this possible? Example as below: Converting records/lines to... (2 Replies)
Discussion started by: newbie_01
2 Replies

5. Shell Programming and Scripting

Find for line with not null values at nth place in pipe delimited file

Hi, I am trying to find the lines in a pipe delimited file where 11th column has not null values. Any help is appreciated. Need help asap please. thanks in advance. (3 Replies)
Discussion started by: manikms
3 Replies

6. Shell Programming and Scripting

How to insert a sequence number column inside a pipe delimited csv file using shell scripting?

Hi All, I need a shell script which could insert a sequence number column inside a dat file(pipe delimited). I have the dat file similar to the one as shown below.. |A|B|C||D|E |F|G|H||I|J |K|L|M||N|O |P|Q|R||S|T As shown above, the column 4 is currently blank and i need to insert sequence... (5 Replies)
Discussion started by: nithins007
5 Replies

7. UNIX for Dummies Questions & Answers

Deleting lines that contain a specific string from a space delimited text file?

Hi, I have a space delimited text file that looks like the following: 250 rs10000056 0.04 0.0888 4 189321617 250 rs10000062 0.05 0.0435 4 5254744 250 rs10000064 0.02 0.2403 4 127809621 250 rs10000068 0.01 NA 250 rs1000007 0.00 0.9531 2 237752054 250 rs10000081 0.03 0.1400 4 17348363... (5 Replies)
Discussion started by: evelibertine
5 Replies

8. Shell Programming and Scripting

[bash help]Adding multiple lines of text into a specific spot into a text file

I am attempting to insert multiple lines of text into a specific place in a text file based on the lines above or below it. For example, Here is a portion of a zone file. IN NS ns1.domain.tld. IN NS ns2.domain.tld. IN ... (2 Replies)
Discussion started by: cdn_humbucker
2 Replies

9. UNIX for Dummies Questions & Answers

Replacing a field in pipe delimited TEXT File

Hi, I want to replace a field in a text delimited file with the actual number of records in the same file. HDR|ABCD|10-13-2008 to 10-19-2008.txt|10-19-2008|XYZ DTL|0|5464-1|0|02-02-2008|02-03-2008||||F||||||||| DTL|1|5464-1|1|02-02-2008|02-03-2008|1||JJJ... (3 Replies)
Discussion started by: ravi0435
3 Replies

10. UNIX for Advanced & Expert Users

insert pipe in file to separate values

hi all... i need your help, because i donīt know what to do... i have a flat file like this: B065200512312004123111010000061451 000021853 B065200512312004123111020000621907 000417802 B065200512312004123111030000005214 000005861 B065200512312004123111040000120133 000088448 and i need... (5 Replies)
Discussion started by: DebianJ
5 Replies
Login or Register to Ask a Question