How to cut a pipe delimited file and paste it with another file to form a comma separated outputfile


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to cut a pipe delimited file and paste it with another file to form a comma separated outputfile
# 1  
Old 10-04-2014
How to cut a pipe delimited file and paste it with another file to form a comma separated outputfile

Hello ppl

I have a requirement to split (cut in unix) a file (A.txt) which is a pipe delimited file into A1.txt and A2.txt

Now I have to join (paste in unix) this A2.txt with external file A3.txt to form
output file A4.txt which should be CSV (comma separated file) so that third party can open it using Microsoft excel.

I can split the files however I want according to my flexibility but my input A.txt is a pipe delimited file and my output should be A4.txt.

the reason my input A.txt was pipe because the fields inside might contain commas within them .

Any quick help is appreciated..
# 2  
Old 10-04-2014
Replace all pipes by commas
Code:
tr '|' ',' <input >output

In case the fields have commas try
Code:
sed 's/|/","/g; s/^/"/; s/$/"/'

# 3  
Old 10-04-2014
please give samples files.

you wrote:
Quote:
the reason my input A.txt was pipe because the fields inside might contain commas within them
so output files can't have comma as separator in such case, unless you surrounds data with double-quote ( " ) for instance .
# 4  
Old 10-04-2014
Quote:
Originally Posted by blastit.fr
so output files can't have comma as separator in such case, unless you surrounds data with double-quote ( " ) for instance .
That's what the sed solution does, protectively quotes all fields.
# 5  
Old 10-04-2014
You can try to add this filter that converts | to ","
Code:
... some code ...|awk -F\| -vOFS='","' '{print "\"" $1,$2,$3,$4 "\""}' > A4.txt

Jean-Paul
# 6  
Old 10-04-2014
Quote:
Originally Posted by blastit.fr
You can try to add this filter that converts | to ","
Code:
... some code ...|awk -F\| -vOFS='","' '{print "\"" $1,$2,$3,$4 "\""}' > A4.txt

Jean-Paul
But, of course, the above script only works correctly if the input fed into it always has exactly four fields in the input (and I didn't see anything in this thread so far that places any limits on the number of fields).

The following should work (even keeping empty empty lines in the input empty in the output):
Code:
... some code ... | awk -F'|' -v OFS='","' 'NF{$1 = $1; $0 = "\"" $0 "\""}1' > A4.txt

If you want to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk.
This User Gave Thanks to Don Cragun For This Post:
# 7  
Old 10-05-2014
another thing I forgot to mention is I dont know pre hand how many fields exist in the file meaning A2.txt can have 0-n number of fields ..The file A2.txt might have any number of variable fields.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Linux convert Comma delimited file to pipe

I have file in linux with comma delimited and string fields in double quotations ", I need to convert them to pipe delimiter please share your inputs. Example: Input: "2017-09-30","ACBD,TVF","01234",NULL,18,NULL,"686091802","BANK OF ABCD, LIMITED, THE",790456 Output: ... (4 Replies)
Discussion started by: shieksir
4 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

Comma separated file

Hi all, I have the following files types: FileA: 100, 23, 33, FileB: 22, 45, 78, and i want to make File C: 100,22 23,45 33,78 any nice suggestions for making it easy. (3 Replies)
Discussion started by: hen1610
3 Replies

4. Shell Programming and Scripting

Help with converting Pipe delimited file to Tab Delimited

I have a file which was pipe delimited, I need to make it tab delimited. I tried with sed but no use cat file | sed 's/|//t/g' The above command substituted "/t" not tab in the place of pipe. Sample file: abc|123|2012-01-30|2012-04-28|xyz have to convert to: abc 123... (6 Replies)
Discussion started by: karumudi7
6 Replies

5. Shell Programming and Scripting

How to convert a space delimited file into a pipe delimited file using shellscript?

Hi All, I have space delimited file similar to the one as shown below.. I need to convert it as a pipe delimited, the values inside the pipe delimited file should be as highlighted... AA ATIU2345098809 009697 005374 BB ATIU2345097809 005445 006518 CC ATIU9685098809 003215 003571 DD... (7 Replies)
Discussion started by: nithins007
7 Replies

6. Shell Programming and Scripting

How to format file into comma separated text file?

Hi Guys, I have text file which is tab/space separated but I want it to re-format into a comma separated and trim the spaces in between. Can someone spare me a perl or sed script that can do the job? INPUT FILE: 500010245623 500 21-APR-11 05.58.21 PM ... (14 Replies)
Discussion started by: pinpe
14 Replies

7. Shell Programming and Scripting

Converting comma separated to pipe delimited file

Hi, I came across a very good script to convert a comma seperated to pipe delimited file in this forum. the script serves most of the requirement but looks like it does not handle embedded double quotes and commas i.e if the input is like 1234, "value","first,second", "LDC5"monitor",... (15 Replies)
Discussion started by: anijan
15 Replies

8. Shell Programming and Scripting

Cut and paste data in matrix form

I have large formatted data file with five columns. This has to be rearranged in lower order matrix form as shown below for sample data. 1 2 3 4 5 1.0 3.0 2.0 5.0 3.0 2.0 4.0 3.0 1.0 6.0 2.0 3.0 4.0 5.0 1.0 1.0 4.0 2.0 3.0 5.0 3.0 5.0 4.0 2.0 8.0 1.0 3.0 2.0 4.0 5.0 2.0... (7 Replies)
Discussion started by: dhilipumich
7 Replies

9. Shell Programming and Scripting

convert a pipe delimited file to a':" delimited file

i have a file whose data is like this:: osr_pe_assign|-120|wg000d@att.com|4| osr_evt|-21|wg000d@att.com|4| pe_avail|-21|wg000d@att.com|4| osr_svt|-11|wg000d@att.com|4| pe_mop|-13|wg000d@att.com|4| instar_ready|-35|wg000d@att.com|4| nsdnet_ready|-90|wg000d@att.com|4|... (6 Replies)
Discussion started by: priyanka3006
6 Replies

10. Shell Programming and Scripting

Converting Tab delimited file to Comma delimited file in Unix

Hi, Can anyone let me know on how to convert a Tab delimited file to Comma delimited file in Unix Thanks!! (22 Replies)
Discussion started by: charan81
22 Replies
Login or Register to Ask a Question