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
# 8  
Old 09-24-2017
Hi,
Thanks to reply but sorry, my question was too short.
So, I try to explain my non-understanding.

If infile contain a line like that
Code:
abc|123"|gh-ch"|23.067"

with this command line
Code:
sed 's/"*\([^|"]*\)"*/"\1"/g' infile

sed with g at the end operate 4 times.
so,

time 1 :
Code:
"* = ''
\([^|"]*\) = abc
"* = ''
pattern = "abc"|123"|gh-ch"|23.067"
               ^

sed stop on the | for the second pass

time 2 :
Code:
"* = ''
\([^|"]*\) = ''
"* = ''
pattern = "abc"|123"|gh-ch"|23.067"
               ^

sed stop on the | for the third pass

etc ...
and sed never stop.

It's my understanding.
It's false but I can't figure out how this work.
That's why I ask.

To obtain the same result
my command line is
Code:
sed 's/"*\([^|"]*\)"*\(|*\)/"\1"\2/g' infile

Thanks.
# 9  
Old 09-24-2017
The regex
Code:
"*\([^|"]*\)"*

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

will yield the first parenthesized subexpression to be used by the back reference
Code:
abc
123
gh-ch
23.067

Any existing double quotes will be excluded from the subexpression and thus the back reference. Does this example help you understand:

Code:
sed ' s/"*\([^|"]*\)"*/X\1X/1; p; s/"*\([^|"]*\)"*/X\1X/2; p; s/"*\([^|"]*\)"*/X\1X/3; p; s/"*\([^|"]*\)"*/X\1X/4' file
XabcX|123"|gh-ch"|23.067"
XabcX|X123X|gh-ch"|23.067"
XabcX|X123X|Xgh-chX|23.067"
XabcX|X123X|Xgh-chX|X23.067X

This User Gave Thanks to RudiC For This Post:
# 10  
Old 09-24-2017
Many tanks.
I don't know this type of back reference too
Code:
s/"*\([^|"]*\)"*/X\1X/3
                      ^

# 11  
Old 09-24-2017
That's not a back reference, but one on the s command's flags following the replacement. info sed:

Quote:
FLAGS:

'g'__________Apply the replacement to _all_ matches to the REGEXP, not just the first.

'NUMBER' __Only replace the NUMBERth match of the REGEXP.

Last edited by RudiC; 09-24-2017 at 07:48 AM..
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