sed or awk Solution


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed or awk Solution
# 1  
Old 05-29-2014
Wrench sed or awk Solution

Hi

I am having a csv file like this
Code:
ahsh,90.82,add,32424,ahha
hhdh,98.89,hdhdh,92728,neha
hshs,you,97.7,hdhdhd,are,a 
jsjsj,wonderful,9788,79.9,aheh
ahdh,95.5,girl, 2737,jolll

I need to add width="100" to the value which is greater than 90 like decimal points but less than 100

Code:
Output file 


ahsh,width="100" 90.82,add,32424,ahha
hhdh,width="100" 98.89,hdhdh,92728,neha
hshs,you,width="100" 97.7,hdhdhd,are,a 
jsjsj,wonderful,9788,79.9,aheh
ahdh,width="100" 95.5,girl, 2737,jolll

I tried to use this sed script

Code:
sed 's/[9][0-9]\.[0-9]*/width="100" [9][0-9]\.[0-9]*/g' file

But it is adding [9][0-9]\.[0-9]* to the prior numbers
Prior numbers I need as it is as shown in output file
Please help me out how to tackle this ?

Thanks
Kshitij

Last edited by Scott; 05-29-2014 at 09:04 AM.. Reason: Code tags for code too!
# 2  
Old 05-29-2014
Which column to refer to ? You have 2nd have 3rd column in your case.
This User Gave Thanks to clx For This Post:
# 3  
Old 05-29-2014
Try :

Code:
$ cat file
ahsh,90.82,add,32424,ahha
hhdh,98.89,hdhdh,92728,neha
hshs,you,97.7,hdhdhd,are,a 
jsjsj,wonderful,9788,79.9,aheh
ahdh,95.5,girl, 2737,jolll

Code:
$ awk -F, 'match($0,/[0-9]+\.[0-9]+/){value = substr($0,RSTART,RLENGTH)+0; if(value > 90 && value < 100 )gsub(value,"width=" q 100 q " &")}1' q='"' OFS=',' file

Resulting
Code:
ahsh,width="100" 90.82,add,32424,ahha
hhdh,width="100" 98.89,hdhdh,92728,neha
hshs,you,width="100" 97.7,hdhdhd,are,a 
jsjsj,wonderful,9788,79.9,aheh
ahdh,width="100" 95.5,girl, 2737,jolll

This User Gave Thanks to Akshay Hegde For This Post:
# 4  
Old 05-29-2014
Or adjusting your original sed script:
Code:
sed 's/[9][0-9]\.[0-9]*/width="100" &/g' file

This User Gave Thanks to Scrutinizer For This Post:
# 5  
Old 05-29-2014
try also:
Code:
awk -F, '{f=0; for (i=1;i<=NF;i++){a=$i;if(!f && a+=0)f=i} ; if ($f<100) $f="witdh=\"100\" " $f} 1' OFS=, infile

This User Gave Thanks to rdrtx1 For This Post:
# 6  
Old 05-30-2014
Thanks a lot everyone
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Solution for replacement of 4th column with 3rd column in a file using awk/sed preserving delimters

input "A","B","C,D","E","F" "S","T","U,V","W","X" "AA","BB","CC,DD","EEEE","FFF" required output: "A","B","C,D","C,D","F" "S", T","U,V","U,V","X" "AA","BB","CC,DD","CC,DD","FFF" tried using awk but double quotes not preserving for every field. any help to solve this is much... (5 Replies)
Discussion started by: khblts
5 Replies

2. Shell Programming and Scripting

sed to check two condition need solution

Hi, I am having a file in below format server-1 Win2008:server-1-1700,1774,290104720,290104987:server-1 server-2 AIX:server-2-:server-2 server-2 I want the output like this Win2008:server-1-1700,1774,290104720,290104987:standalon-server AIX:server-2-:VIO-Sever I used the... (7 Replies)
Discussion started by: ranjancom2000
7 Replies

3. Shell Programming and Scripting

AWK or SED solution

Hello. I have big file data like this(part of file): .... 18210102021010000110 47401000000 021001 5166891.16 021011 5166891.16 18210602010020000110 47401000000 020701 8995421.00 021001 8995421.00 021011 8995421.00 030801 .08 18210604011020000110 47401000000 020701 9048.00 021001... (3 Replies)
Discussion started by: maxoff
3 Replies

4. Shell Programming and Scripting

Awk solution

Hello! Well, I searched and wasn't able to find a specific example of my dilemma, so hopefully someone could assist? Or maybe there was an example but I missed it? I have two files: file1 = order data file file2 = list of 65,000+ order numbers I would like to extract from 'file1' any... (5 Replies)
Discussion started by: rm -r *
5 Replies

5. Shell Programming and Scripting

Urgent solution for simple sed

Hi Im running this command on AIX in ksh. My input file samp1 contains 1 2 123 12345 When I execute the following sed i dont get a matching pattern sed -n '/{1}/p' samp1 Can anyone help me with this simple thing (3 Replies)
Discussion started by: raghav288
3 Replies

6. Shell Programming and Scripting

sed solution for condition checking

Hi all , Recently i came across this in FAQ's. I have a file cat rem.txt sreedhar 20 sreedhar 10 sreedhar 15 sreedhar 18 sreedhar 16 sreedhar 30 I have to replace sreedhar with "Sridhar" if the second parameter is > 18. I need to do it in "sed" only. I am wondering how this... (4 Replies)
Discussion started by: panyam
4 Replies

7. UNIX for Dummies Questions & Answers

Awk/sed solution for grep,cut

Hi, From the file "example" with lines like below, I need the int value associated with ENG , i.e, 123 SUB: ENG123, GROUP 1 SUB: HIS124, GROUP 1 .. .. Normally , i do grep ENG example | cut -d ' ' -f 2 | cut -c 4-6 Is it possible to do it in simpler way using awk/sed ? ... (5 Replies)
Discussion started by: priyam
5 Replies

8. Shell Programming and Scripting

Is there a awk solution for this??

I am writing a awk script that gathers certain data from certain fields. I needed a awk solution for this, because it will later become a function in the script. I have the following data that I need output on a single line, but record spans across multilple lines and records are not... (7 Replies)
Discussion started by: timj123
7 Replies

9. Shell Programming and Scripting

Is There a Sed Solution for This?

Hi All, I'm trying to use sed to extract data within a String, but I'm having problems with sed command: Text: STATUS OSRC_R6_0_MENT_R1H_CU M_901662 R1H_LV1_20080313 Based from the Text above, I just need to extract this data R6_0 R1H_CU LV1 Is there a solution for this in... (1 Reply)
Discussion started by: racbern
1 Replies
Login or Register to Ask a Question

Featured Tech Videos