Need help with Sed (replacing parenthesis and comma)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help with Sed (replacing parenthesis and comma)
# 1  
Old 04-25-2012
Need help with Sed (replacing parenthesis and comma)

I have the following text as an input text:

input.txt
Code:
Results('Toilet', 'Sink', )

and i want to remove the last comma so the output is

output.txt
Code:
Results('Toilet', 'Sink' )

I tried using the following sed command, but I get a parsing error:
Code:
sed s/, \)/\)/g input.txt > output.txt

# 2  
Old 04-25-2012
Code:
echo 'Results('Toilet', 'Sink', )'  | sed 's:, ):):g'

# 3  
Old 04-25-2012
Quote:
Originally Posted by 47shailesh
Code:
echo 'Results('Toilet', 'Sink', )'  | sed 's:, ):):g'

thanks. I have a text file with a bunch of Results('xxx', 'yyy', ), so i was hoping i didn't have to use the command echo.
# 4  
Old 04-25-2012
you don't have to , use like sed 's:, ):):g' infile > outfile.
I posted with echo so that you can quickly check if it's generating right output.
# 5  
Old 04-25-2012
Quote:
Originally Posted by 47shailesh
Code:
echo 'Results('Toilet', 'Sink', )'  | sed 's:, ):):g'

This will remove the comma only if it is followed by " )" and - even worse - will remove any comma followed by " )" in the line.

A more robust approach will be to search for the last occurrence of a character in the line and remove this:

Code:
echo "<your_string_here>" | sed 's/,[^,]*$//'

This will remove the last occurrence of "," in a line, regardless of what it is followed. This method can be used to search for (and maybe change) any last character of some sort:

Code:
sed 's/<character>[^<character>]*$/ .../'

searches for <character> followed by any number of (*) "not-characters" (this is what "[^<character>]" means: "^" is a logical NOT for character classes) followed by a line-end. Therefore, if it matches, it will match only the last character of a sort in a line.

I hope this helps.

bakunin
# 6  
Old 04-25-2012
Quote:
Originally Posted by bakunin
This will remove the comma only if it is followed by " )" and - even worse - will remove any comma followed by " )"
isn't that what he wants ?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed help adding parenthesis

I have the following data and want to put parenthis around the numbers: PARTITION PERIOD_MIN VALUES LESS THAN 10649 TABLESPACE ODS_DAILY_MF_AUM, PARTITION PERIOD_10649 VALUES LESS THAN 10650 TABLESPACE ODS_DAILY_MF_AUM, PARTITION PERIOD_10650 VALUES LESS THAN 10651 TABLESPACE... (2 Replies)
Discussion started by: BeefStu
2 Replies

2. UNIX for Dummies Questions & Answers

Replacing | with a comma

I have a huge file which is pipe delimiter and i want to replace the pipe delimiter to a comma Please Help as its v urgent. Ex: parent|child|alias|....Heading of the file...and the data is of similar structure. (4 Replies)
Discussion started by: win4luv
4 Replies

3. UNIX for Advanced & Expert Users

Replacing the comma in .csv file in unix

Hi All, Could some one help me on one of my requirement below: I have a sequential file with 4fields in it and it is a comma (,) seperated file. Delimeter is 'comma'. But in of the file column for ex: 3rd column it is 'Description' (column name) I am getting the values with commas.... (6 Replies)
Discussion started by: eskay_s
6 Replies

4. Shell Programming and Scripting

Multiline parenthesis matching, with e.g. SED script, in LaTeX doc

In a LaTeX manuscript, I need to replace many occurrences of \emph{some string} with some string, i.e. whatever string is inside. The string inside often may extend over several lines, and there may be other occurences of curly brackets inside it. So for example \emph{this \it{is} a... (5 Replies)
Discussion started by: sune
5 Replies

5. Shell Programming and Scripting

sed help - replacing 6th comma with a space

Hi, How can I replace the 6th comma on each line (of a csv) with a space? Any online tutorials with plenty of examples using sed would be very useful. Alex (2 Replies)
Discussion started by: mcclunyboy
2 Replies

6. Shell Programming and Scripting

Suppressing space replacing by comma

hi i want to replace spaces by comma my file is ADD 16428 170 160 3 WNPG 204 941 No 204802 ADD 16428 170 160 3 WNPG 204 941 No 204803 ADD 16428 170 160 3 WNPG 204 941 No 204804 ADD... (9 Replies)
Discussion started by: raghavendra.cse
9 Replies

7. Shell Programming and Scripting

Replacing dot for comma

I wanted to change 34.66 to 34,66. I tried the command: sed 's/./,/' $NUM Where $NUM is a variable with 34.66 value. The output is ,4.66 (2 Replies)
Discussion started by: bdalmeida
2 Replies

8. UNIX for Dummies Questions & Answers

Replacing Comma by Tab

Hi All, i have a file test.txt as shown below, 1,test,test111 2,rest,rest222 i want to replace the commas by tab delimiter.., it should be like, 1 test test111 2 rest rest222 i tried the following code, sed 's/,/\\t/g' test.txt >> ouptut.txt (9 Replies)
Discussion started by: Serious Sam
9 Replies

9. Shell Programming and Scripting

replacing comma's with newlines using sed

Hi All, silly question that I'm sure is easy to answer for a more experienced coder... I have a file called test.txt containing the following text... need, to, break, this, line, into, individual, lines using sed, I'd like to make the file look like this... need to break this line... (5 Replies)
Discussion started by: newbie_coder
5 Replies

10. UNIX for Dummies Questions & Answers

another sed question about parenthesis

hi, I'm trying to use sed to erase everything, up to, and including, the first closing parenthesis. for example: input: blah blah blah (aldj) test (dafs) test test. output: test (dafs) test test. how would i do this? I was fooling around with the parenthesis, and i only got it to apply to... (5 Replies)
Discussion started by: gammaman
5 Replies
Login or Register to Ask a Question