replacement


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers replacement
# 1  
Old 04-29-2011
replacement

my filename.txt looks like this:
Code:
2079951061790                       SCK0000891539000000000000021600R
2079951061790                       SCK0000901487000000000000028900R
2079951061790                       SCK0000903092000000000000021300R

2079951074758                       SCK0000420674000000000000124500R
2079951074758                       SCK0000420367000000000000014610R
2079951074758                       SCK0000421367000000000000014610R

if account 2079951061790 and check => 9200000, replace SCK with LCK

if account 2079951074758 and check => 420000, replace SCK with LCK

can this be done thru sed or awk ? please light me up. thanks in advance....
Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 04-29-2011 at 12:00 PM.. Reason: code tags, please!
# 2  
Old 04-29-2011
What do you mean by

"and check => 9200000"
"and check => 420000"

I'm afraid i miss something, (because i don't see any "420000" pattern in the current given example) could you please explain further ?

Or change your example so that you also show the expected output ?
# 3  
Old 04-29-2011
look at my column two, 3rd line, it contains ck# such as 920000 and 870000, for example, if i see 2079951061790 in column 1, and check 920000 in column 2, i would replace LCK with SCK.

if you look at line 2 and line 3, i would replace line 3 with SCK because it has 2079951061790 and => 920000
# 4  
Old 04-29-2011
what do you mean by "=> 920000" ???

1) "is greater than or equal 920000" ?

2) "the second field contains the pattern '920000' " ?

Please post a representative example of input and expected output


Code:
# cat tst
2079951061790                       SCK0000891539000000000000021600R
2079951061790                       SCK0000901487000000000000028900R
2079951061790                       SCK0000903092000000000000021300R

2079951074758                       SCK0000420674000000000000124500R
2079951074758                       SCK0000420367000000000000014610R
2079951074758                       SCK0000421367000000000000014610R

Code:
# awk '$1==2079951061790&&$2~/920000/{sub("SCK","LCK",$2)}1' tst
2079951061790                       SCK0000891539000000000000021600R
2079951061790                       SCK0000901487000000000000028900R
2079951061790 LCK0000903092000000000000021300R

2079951074758                       SCK0000420674000000000000124500R
2079951074758                       SCK0000420367000000000000014610R
2079951074758                       SCK0000421367000000000000014610R

Code:
# awk '$1==2079951061790&&$2~/920000/{sub("SCK","LCK",$0)}1' tst
2079951061790                       SCK0000891539000000000000021600R
2079951061790                       SCK0000901487000000000000028900R
2079951061790                       LCK0000903092000000000000021300R

2079951074758                       SCK0000420674000000000000124500R
2079951074758                       SCK0000420367000000000000014610R
2079951074758                       SCK0000421367000000000000014610R

Code:
# a=2079951061790
# b=920000
# awk -v x="$a" -v y="$b" '$1==x&&$2~y{sub("SCK","LCK",$0)}1' tst
2079951061790                       SCK0000891539000000000000021600R
2079951061790                       SCK0000901487000000000000028900R
2079951061790                       LCK0000903092000000000000021300R

2079951074758                       SCK0000420674000000000000124500R
2079951074758                       SCK0000420367000000000000014610R
2079951074758                       SCK0000421367000000000000014610R

?

Last edited by ctsgnb; 04-29-2011 at 12:56 PM..
# 5  
Old 04-29-2011
all said and done, my output should look like this:

2079951061790 SCK0000891539000000000000021600R
2079951061790 SCK0000901487000000000000028900R
2079951061790 LCK0000903092000000000000021300R

2079951074758 LCK0000420674000000000000124500R
2079951074758 LCK0000420367000000000000014610R
2079951074758 LCK0000421367000000000000014610R

i replaced:
2079951061790 SCK0000903092000000000000021300R
with
2079951061790 LCK0000903092000000000000021300R
because it contains 2079951061790 and 920000
# 6  
Old 04-29-2011
ok and all other subsequent lines should also have there SCK changed into LCK even if not having the 920000 pattern ?

Then go with

Code:
# a=2079951061790
# b=920000
# awk -v x="$a" -v y="$b" '$1==x&&$2~y{f=1}f{sub("SCK","LCK",$0)}1' tst
2079951061790                       SCK0000891539000000000000021600R
2079951061790                       SCK0000901487000000000000028900R
2079951061790                       LCK0000903092000000000000021300R

2079951074758                       LCK0000420674000000000000124500R
2079951074758                       LCK0000420367000000000000014610R
2079951074758                       LCK0000421367000000000000014610R

---------- Post updated at 05:53 PM ---------- Previous update was at 05:50 PM ----------

Quote:
Originally Posted by tjmannonline
all said and done, my output should look like this:

2079951061790 SCK0000891539000000000000021600R
2079951061790 SCK0000901487000000000000028900R
2079951061790 LCK0000903092000000000000021300R

2079951074758 LCK0000420674000000000000124500R
2079951074758 LCK0000420367000000000000014610R
2079951074758 LCK0000421367000000000000014610R

i replaced:
2079951061790 SCK0000903092000000000000021300R
with
2079951061790 LCK0000903092000000000000021300R
because it contains 2079951061790 and 920000
Are the LCK in red expected or was it a typo ?... because they do not have $2 matching '920000' pattern, only the black LCK does match this pattern

Last edited by ctsgnb; 04-29-2011 at 12:59 PM..
# 7  
Old 04-29-2011
originally, all have SCK, i replaced LCK bc it has 2079951074758 and =>420000.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Is this MB, which needs replacement ?

Hello, I am getting below error in fmadm output. This server is not in support, so can't reach them. Is it showing that motherboard is faulty and should be replaced ? It was rebooted a week back and then, there were no errors # fmadm faulty --------------- ------------------------------------ ... (1 Reply)
Discussion started by: solaris_1977
1 Replies

2. HP-UX

Terminal replacement

I recently picked up an HP9000 server running HPUX. I would like to replace the CRT terminal console with something I can use a flat panel monitor. Any suggestions would be greatly appreciated. (1 Reply)
Discussion started by: Stevebei
1 Replies

3. Shell Programming and Scripting

help me :replacement

Hi pls help me for below; i have a file .content is : =================== uid,pcsPricingPlan,refPcsQosProfName 821910002022,smartlimit,SGSNQOS1 i have to replace the value of uid and pricingplan by a unix script. may be the value would be next line or any where in the file. pls... (9 Replies)
Discussion started by: Aditya.Gurgaon
9 Replies

4. Shell Programming and Scripting

SED replacement

Hi, i have a file with lines, file.txt ------- test is fun testing is better I need to replace 'test' to 'develop' and i used, a=test b=develop sed "s,$a,$b,g" -------- but i see the word 'testing' is also replaced. Need some solution. Is there any way i could replace only 'test' ? (4 Replies)
Discussion started by: giri_luck
4 Replies

5. Shell Programming and Scripting

String replacement

Hi All, I have below file which has data in below format. #$ | AB_100 | AB_300 ()| AB_4 @*(% | AB-789 i want o/p as below format. | AB_100 | AB_300 | AB_4 | AB-789 So here there is no standard format. How we can achieve the same in unix ? Regards, (3 Replies)
Discussion started by: gander_ss
3 Replies

6. UNIX for Dummies Questions & Answers

Pattern Replacement

There is a requirement that i need to replaced a pattern by another pattern in all the files in my entire file system. there are 1000s of file in the system. let the pattern is "calcuta". i have to replace this pattern by "kolkata" in all those files which contain "calcuta". I am only able to... (12 Replies)
Discussion started by: palash2k
12 Replies

7. UNIX for Advanced & Expert Users

getprotobyname replacement?

I've been tasked with converting our software from strictly an IPv4 environment to handling both IPv4 and IPv6. I'm very nearly done and everything seems to be progressing just fine. There's just one thing that's been nagging me for a while now, so I thought I'd enquire about this. I've read... (1 Reply)
Discussion started by: sszd
1 Replies

8. Shell Programming and Scripting

Need Replacement for sed

Hi Can anyone provide me the replacement of sed with xargs perl syntax for the below sed -e :a -e '/;$/!N;s/\n//; ta' -e 's/;$//' This should be without looping has to take minimal time for search (0 Replies)
Discussion started by: dbsurf
0 Replies

9. Shell Programming and Scripting

Character replacement

Hi, I am working on a command that replaces some occurrences of quotation marks in file. The quotation mark cannot be the first or the last character in line and cannot be preceded or followed by a comma. I am not an expert in regular expressions, but I managed to create the following... (2 Replies)
Discussion started by: piooooter
2 Replies

10. UNIX for Dummies Questions & Answers

Regarding Replacement

I have two files: file1: somedata <html> <head> This is sample statement ...... ...... </head> </html> somedata file2: olga 81 91 B A rene 82 92 B A zack 83 93 Expextd Result: (2 Replies)
Discussion started by: rajx
2 Replies
Login or Register to Ask a Question