Need shell script to append double quotes for each column in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need shell script to append double quotes for each column in a file
# 1  
Old 09-19-2017
Need shell script to append double quotes for each column in a file

Hi Experts,

I am beginner to the shell scripting, My requirement is to append double quotes for each column in a file if double quotes does not exist.


Example:

Code:
"abc"|123|"gh-ch"|23.067

Moderator's Comments:
Mod Comment Use code tags, thanks.

Last edited by zaxxon; 09-19-2017 at 10:26 AM.. Reason: code tags
# 2  
Old 09-19-2017
Code:
awk '{for (i=1; i<=NF; i++) {sub("^\"", "", $i); sub("\"$", "", $i); gsub("\"", "\\\"", $i); $i="\"" $i "\""} ; print}' FS="|" OFS="|" infile

# 3  
Old 09-19-2017
Try:
Code:
sed 's/"*\([^|"]*\)"*/"\1"/g' file

or
Code:
awk '{for(i=1; i<=NF; i++) gsub(/^"*|"*$/,"\"",$i)}1' FS=\| OFS=\| file


Last edited by Scrutinizer; 09-19-2017 at 12:49 PM..
# 4  
Old 09-19-2017
Thanks for the answers!!

But i am having problem with the first column, my file looks like below example.

Code:
"G|||ABCD|||1234"|"ABC"|123.05|"xyz"

except first column i have to apply the above code( as in first column data itself contains pipe(|) in the data)

so when i use above commands the first column pipes are replacing with the double quotes

Code:
"G"|"|"|"ABCD"|"|"|"1234"|"ABC

So i need output like
Code:
"G|||ABCD|||1234"|"ABC"|"123.05"|"XYZ"

Thanks everyone

Last edited by Scrutinizer; 09-19-2017 at 05:40 PM.. Reason: code tags
# 5  
Old 09-19-2017
In that case see if this works:
Code:
awk '{for(i=1; i<=NF; i+=2) gsub(/[^|]+/,"\"&\"",$i)}1' FS=\" OFS=\" file

# 6  
Old 09-23-2017
Hi,
I think this one with sed is ok.
Code:
sed 's/^/"/;s/\([^|]\)\([|]\)\([^|]\)/\1"\2"\3/g;s/$/"/;s/""/"/g' infile

I don't understand this one from Scrutinizer in #3
Code:
sed 's/"*\([^|"]*\)"*/"\1"/g' infile

Someone can explain ?
Thanks.
# 7  
Old 09-23-2017
That replaces any substring NOT containing | nor " , be it enclosed in double quotes or not, with itself enclosed in double quotes. In the requestor's sample line that occurs 4 times.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to insert data into black column( Secound Column ) in excel (.XLSX) file using shell script?

Source Code of the original script is down below please run the script and try to solve this problem this is my data and I want it column wise 2019-03-20 13:00:00:000 2019-03-20 15:00:00:000 1 Operating System LAB 0 1 1 1 1 1 1 1 1 1 0 1 (5 Replies)
Discussion started by: Shubham1182
5 Replies

2. Shell Programming and Scripting

awk script to append suffix to column when column has duplicated values

Please help me to get required output for both scenario 1 and scenario 2 and need separate code for both scenario 1 and scenario 2 Scenario 1 i need to do below changes only when column1 is CR and column3 has duplicates rows/values. This inputfile can contain 100 of this duplicated rows of... (1 Reply)
Discussion started by: as7951
1 Replies

3. Shell Programming and Scripting

Replace Double quotes within double quotes in a column with space while loading a CSV file

Hi All, I'm unable to load the data using sql loader where there are double quotes within the double quotes As these are optionally enclosed by double quotes. Sample Data : "221100",138.00,"D","0019/1477","44012075","49938","49938/15043000","Television - 22" Refurbished - Airwave","Supply... (6 Replies)
Discussion started by: mlavanya
6 Replies

4. Shell Programming and Scripting

Handling embedded double quotes within column data

I have a text file where each field is enclosed in double quotes and separated by a comma. But in certain rows we have embedded double quotes within column data For e.g """TRUSPICE CENTRE"" CLAYTON AU" The above value is for a single column but there are embedded quotes within... (2 Replies)
Discussion started by: abhilashnair
2 Replies

5. Shell Programming and Scripting

Shell script that should remove unnecessary commas between double quotes in CSV file

i have data as below 123,"paul phiri",paul@yahoo.com,"po.box 23, BT","Eco Bank,Blantyre,Malawi" i need an output to be 123,"paul phiri",paul@yahoo.com,"po.box 23 BT","Eco Bank Blantyre Malawi" (5 Replies)
Discussion started by: mathias23
5 Replies

6. Shell Programming and Scripting

Issue with Single Quotes and Double Quotes for prompt PS1

Hi, Trying to change the prompt. I have the following code. export PS1=' <${USER}@`hostname -s`>$ ' The hostname is not displayed <abc@`hostname -s`>$ uname -a AIX xyz 1 6 00F736154C00 <adcwl4h@`hostname -s`>$ If I use double quotes, then the hostname is printed properly but... (3 Replies)
Discussion started by: bobbygsk
3 Replies

7. UNIX for Dummies Questions & Answers

append column and row header to a file in awk script.

Hi! Is there a way to append column and row header to a file in awk script. For example if I have Jane F 39 manager Carlos M 40 system administrator Sam F 20 programmer and I want it to be # name gend age occup 1 Jane F 39 manager 2 Carlos M ... (4 Replies)
Discussion started by: FUTURE_EINSTEIN
4 Replies

8. Shell Programming and Scripting

shell script - to append single quotes and comma

file1 ---- 34556745 32678343 31576776 31455566 21356666 I want to assign the record values to a variable in the below format, so that I can use output in .sql file for querying in database. ('34556745', '32678343', '31576776', '31455566', '21356666') ----------- below is the... (11 Replies)
Discussion started by: rajivrsk
11 Replies

9. Shell Programming and Scripting

To append two columns without double quotes

Hi i have a file with follw data "20090427","0","","16371311","-100200","","","","16371311","JUL","09" In the 10th column i need to convert the month name into month number in this case JUL will be 7 and append the 10th and 11th column which shows me the output as 709. Can you suggest a shell... (11 Replies)
Discussion started by: vee789
11 Replies

10. Shell Programming and Scripting

put double quotes for a column

Hi, I have a file which looks like this, I have stripped most of the columns: 2006,UCA,"02452","NM","1","M","84",123,aa 2006,UCA,"02452","NM","1","L","84",123,bb 2006,UCA,"02452","NM","1","L","84",432,cc 2006,UCA,"02452","NM","1","L","33",213,dd 2006,UCA,"02452","NM","1","L","33",124,ee... (3 Replies)
Discussion started by: sumeet
3 Replies
Login or Register to Ask a Question