Shell script to format a .CSV data


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell script to format a .CSV data
# 1  
Old 02-01-2008
Shell script to format a .CSV data

Hi There

I needed to write a Unix shell script which will pick up the data from a .CSV file and reformat it as per the requirement and write it to another .CSV file.

Currently I am in the proess of Data Import to "Remedy System" (A one kind of incident mangement Application) and this application accepts the Data in a particular format, Hence I want to accomplish this task with the Script without manual intervension.

My Original data loooks some what like this,

AcquiredMethod, AssetID, AssetLifecycleStatus, SC1, SC2, DC1, DC2
Vendor Owned, ATESTIMPORT10, Down, a, b, c, d

This has to be re-formatted like this

AcquiredMethod, AssetID, AssetLifecycleStatus, C, S/D, 1or2
Vendor Owned, ATESTIMPORT10, Down, a, S, 1
Vendor Owned, ATESTIMPORT10, Down, b, S, 2
Vendor Owned, ATESTIMPORT10, Down, c, D, 1
Vendor Owned, ATESTIMPORT10, Down, d, D, 2


I know I am a bad in explaining, however if you go through the excel it will be little clear.

The condition is if there is no data in any of the 4 columns (SC1 or SC2 or SC3 or SC4) the same record will not be present in the out CSV file.

Can anyone please give the script for the above task. I would really appreciate that.

Thanks in Advance,
Uday
# 2  
Old 02-01-2008
Code:
$ cat in.txt
AcquiredMethod, AssetID, AssetLifecycleStatus, SC1, SC2, DC1, DC2
Vendor Owned, ATESTIMPORT10, Down, a, b, c, d
$
$
$ cat sply.sh
#!/usr/bin/ksh

nawk -F"," 'BEGIN{OFS=","}{ if (NR==1) {
                        print "AcquiredMethod, AssetID, AssetLifecycleStatus, C, S/D, 1or2"
                } else {
                        print $1,$2,$3,$4,"S",1
                        print $1,$2,$3,$5,"S",2
                        print $1,$2,$3,$6,"D",1
                        print $1,$2,$3,$7,"D",2
                }}' in.txt



$
$
$ ./sply.sh
AcquiredMethod, AssetID, AssetLifecycleStatus, C, S/D, 1or2
Vendor Owned, ATESTIMPORT10, Down, a,S,1
Vendor Owned, ATESTIMPORT10, Down, b,S,2
Vendor Owned, ATESTIMPORT10, Down, c,D,1
Vendor Owned, ATESTIMPORT10, Down, d,D,2

HTH
# 3  
Old 02-01-2008
Thank you

Hi

Thanks!!. That was very quick and it works 95% correct. Only exception here is it create a record in every instance.., i.e. even if SC1 or SC2 or DC1 or DC2 is blank.

I mean we tested this script in all the possibalities, of SC1,SC2,SC3 and SC4, i.e. with all the 16 possibalities and it created total 64 records, where as it should have created only 32. Hence we need to eliminate the other 32 records.

Could you advice on this.

Once again thank you very much for your swift and accurate reply.


Thanks
Uday
# 4  
Old 02-01-2008
You mention SC3 and SC4 but the data example you gave is:

AcquiredMethod, AssetID, AssetLifecycleStatus, SC1, SC2, DC1, DC2

BY DC1 and DC2 do you mean SC3 and SC4
# 5  
Old 02-01-2008
Sorry! you are right

Yes I am sorry you are right


.. It is DC1 and DC2

uday
# 6  
Old 02-01-2008
I would prefer that you post some examples - provide sample input and expected output. Cover the cases you mentioned in your samples - that makes is easier and saves our time.
# 7  
Old 02-04-2008
Here is the example

Hi

Please refer to the attachement attached to with this reply to see an example and all the explanation regarding this. Expecting your help with this.

Thanks and Regards
Uday
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Programming

Python or Shell script to Grep strings from input file and output in csv format

Hi Experts, I am writing a python script to grep string from file and display output in csv file as in attached screenshot https://drive.google.com/file/d/1gfUUdfmQma33tz65NskThYDhkZUGQO0H/view Input file(result_EPFT_config_device) Below is the python script i have prepared as of... (1 Reply)
Discussion started by: as7951
1 Replies

2. Shell Programming and Scripting

Shell script to extract data from csv file

Hi everyone, I have a csv file which has data with different heading and column names as below. Static Data Ingested ,,,,,,,,,,,,Known Explained Rejections Column_1,column_2,Column_3,Column_4,,Column_6,Column_7,,% Column_8,,Column_9 ,Column_10 ,... (14 Replies)
Discussion started by: Vivekit82
14 Replies

3. UNIX for Dummies Questions & Answers

Shell script to extract data from csv file

Hi Guys, I am new to shell script.I need your help to write a shell script. I need to write a shell script to extract data from a .csv file where columns are ',' separated. The file has 7 columns having values say column 1,column 2.....column 7 as below along with their values. Name, Address,... (7 Replies)
Discussion started by: Vivekit82
7 Replies

4. Shell Programming and Scripting

Format CSV file from a shell script

I have a shell script which creates a CSV files. there are 3 fields, field1, field2 and comp. I will generates the values for field1 and field2 and Want to compare both. If field1>filed2 then comp should be success written in green in CSV file, else it should fail in red color. How can I change the... (5 Replies)
Discussion started by: sauravrout
5 Replies

5. Shell Programming and Scripting

Need perl or shell script to sort vertical lines to horizontal line in csv format

Need perl or shell script to sort vertical lines to horizontal line in csv format My file like below ------------------------- ================================================================================ PATH PINKY1000#I1-1-ZENTA1000-2#I7-1-ASON-SBR-UP-943113845 ... (4 Replies)
Discussion started by: sreedhargouda.h
4 Replies

6. Shell Programming and Scripting

Reading the data from CSV and performing search through shell script

Hello, I am working on building a script that does the below actions together in my Linux server. 1) First, have to read the list of strings mentioned in CSV and store it in the shell script 2) Second, pick one by one from the string list, and search a particular folder for files that... (2 Replies)
Discussion started by: vikrams
2 Replies

7. Shell Programming and Scripting

Exporting data as a CSV file from Unix shell script

Friends...This is the first time i am trying the report generation using shell script... any suggestions are welcome. Is there a way to set the font size & color when i am exporting the data from unix shell script as a CSV file ? The following sample data is saved as a .csv file in the... (2 Replies)
Discussion started by: appu2176
2 Replies

8. UNIX for Advanced & Expert Users

shell script to format .CSV data

Hi all, I have written a shell script to search a specified directory (e.g. /home/user) for a list of specific words (shown as ${TMPDIR}/wordlist below). The script works well enough, but I was wondering if there was a way to display the line number that the word is found on? Thanks! cat... (1 Reply)
Discussion started by: tmcmurtr
1 Replies

9. UNIX for Advanced & Expert Users

format csv file using shell script

i have a report.csv file from oracle datavase In that file data is like this with report heading and date SALES DAILY REPORT DATE: 06-26-2007 REPORT NAME: SALES DATA AA.BB.CCCC.DDDD,BBBBB,06-26-2007,0,BEGIN,END ZZ.VV.DDDD.XXXXXXX,MMMMMM,06-25-2007,18,BEGIN,END... (3 Replies)
Discussion started by: raosurya
3 Replies
Login or Register to Ask a Question