sed questions


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed questions
# 1  
Old 08-13-2007
sed questions

Good day ya'all,

I had a csv file like below

Code:
date|country|ticker
19990101|US|2
20010303|AU|w

I had used the sed as below

Code:
sed 's/\/,/g;
      s/\([0-9][0-9][0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)/\1-\2-\3/1;
      s/\d/\"\d\"/3;
      s/\([0-9]{1.}\)/\"\(0-9]{1,})\"/3'

I was expecting something like below

Code:
date,country,ticker
1999-01-01,US,"2"
2001-03-03,AU,"w"

but I got the following

Code:
date,country,"(0-9]{1,})"
1999-01-01,US,"(0-9]{1,})"
2001-03-03,AU,"(0-9]{1,})"

The result is not what i was expecting, I think my code's logic is incorrect, could anyone give me a pointer?

Thank you for your help
# 2  
Old 08-13-2007
Maybe there's an easier way but this is a possibility:

Code:
sed '2,$ s/\(.*|\)\(.\)/\1\"\2\"/
s/|/,/g
s/\([0-9][0-9][0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)/\1-\2-\3/1' file

Regards
# 3  
Old 08-13-2007
Quote:
Originally Posted by ahtat99
Code:
date|country|ticker
19990101|US|2
20010303|AU|w

Assuming you will have that format always...

Code:
sed -e "s/^\(....\)\(..\)\(..\)|\([^|]*\)|.*$/\1-\2-\3,\4,\"\5\"/g" in.txt

# 4  
Old 08-13-2007
Gosh vino, that is cool, shorter than the one I had before. Thank you. I am not too worry about the format though, because I could change as per user demand.
# 5  
Old 08-13-2007
Code:
awk -F"|" '{ if ( NR == 1 ) { print } else { printf "%d-%d-%d,%s,\"%s\"\n", substr($1, 0, 4), substr($1,5,2), substr($1,7,2), $2, $3 } }' filename

# 6  
Old 08-13-2007
Code:
awk 'BEGIN{FS="|";OFS=","}
NR==1{$1=$1;print}
NR>1{ $1=substr($0,1,4)"-"substr($0,5,2)"-"substr($0,7,2)
      print $1,$2,"\""$3"\""
}' "file"

output:
Code:
 # ./test.sh
date,country,ticker
1999-01-01,US,"2"
2001-03-03,AU,"w"

# 7  
Old 08-14-2007
Quote:
Originally Posted by vino
Assuming you will have that format always...

Code:
sed -e "s/^\(....\)\(..\)\(..\)|\([^|]*\)|.*$/\1-\2-\3,\4,\"\5\"/g" in.txt

Vino,

It seems that you're matching 4 different parts of the pattern space but printing 5 parts.
The first line seems also not to be match.

Regards
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Couple of easy questions for experts on awk/sed

Hello Experts.. I have 3-4 C codes with Oracle SQL statements embedded. All the SQL statements starts with EXEC SQL keyword and ends with ;. I want to extract all the SQL statements out of these codes. I did awk '/^EXEC SQL/,/\;/' inputFile (I use this on all of the codes individually). That... (2 Replies)
Discussion started by: juzz4fun
2 Replies

2. Shell Programming and Scripting

Sed/grep questions

Hi. I have a txt file. I need to make a copy of the lines which are beginning with a mobile phone number, or a fix phone number. I have to copy thoose lines in numbers.txt, after that i have to delete then from the originally file. In numbers.txt i need to write a prefix before each number. if the... (1 Reply)
Discussion started by: T720
1 Replies

3. Shell Programming and Scripting

grep and sed exact match questions

This post was previously mistaken for homework, but is actually a small piece of what I working on at work. Please answer if you can. QUESTION1 How do you grep only an exact string. I am using Solaris10 and do not have any GNU products installed. Contents of car.txt CAR1_KEY0 CAR1_KEY1... (2 Replies)
Discussion started by: thibodc
2 Replies

4. UNIX for Dummies Questions & Answers

grep and sed exact match questions

This was mistaken as homework in a different forum, but is not. These are questions that are close to what I am trying to do at work. QUESTION1: How do you grep only an exact string. I am using Solaris10 and do not have any GNU products installed. Contents of car.txt CAR1_KEY0 CAR1_KEY1... (1 Reply)
Discussion started by: thibodc
1 Replies

5. Homework & Coursework Questions

Print questions from a questions folder in a sequential order

1.) I am to write scripts that will be phasetest folder in the home directory. 2.) The folder should have a set-up,phase and display files I have written a small script which i used to check for the existing users and their password. What I need help with: I have a set of questions in a... (19 Replies)
Discussion started by: moraks007
19 Replies

6. Shell Programming and Scripting

...yet another string of awk/sed questions from a RegExp-Challenged luser %-\

Greetings all, ...here is yet another string of awk/sed questions from a RegExp-Challenged luser :eek: I'm looking to have sed/awk do some clean-up on routing tables and to that end, I would like to do the following: 1.) If a line contains the word "masks" or "subnets" prepend CR/LF to... (16 Replies)
Discussion started by: SteveB-in-LV
16 Replies

7. Programming

two questions

hey all, I have question when am writing simple shell... in the child am calling execvp, i want the parent to know when execvp returns - 1. how can i let the parent know the result of execvp thanks in advance (9 Replies)
Discussion started by: joey
9 Replies

8. UNIX for Dummies Questions & Answers

Sed questions-Please Help

I am using this command to replace a text string in a data file: sed -e 's/ab/test2/g' -e 's/abcxyz/test1/g' datafile datafile contains: ab abcxyz My results: test2 test2cxyz I want my results to be: test2 test1 (7 Replies)
Discussion started by: bobo
7 Replies

9. UNIX for Dummies Questions & Answers

Unpratical SED and GREP questions

Hello every one, I have read a little about SED and GREP but I do not know how to do this: Using SED or GREP: "reverse all three letter words" "replace the last two digits in any string of digits by zeros (0)" "remove lines that start and end with the same word" and I have more like... (5 Replies)
Discussion started by: Lem2003
5 Replies
Login or Register to Ask a Question