translate sed to awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting translate sed to awk
# 8  
Old 12-06-2011
What's the contents of VAR2?

What's the contents of 'test'?

What do you expect to get out?

You're missing lots of quotes, brackets, and spaces:

Code:
echo "$VAR2" | awk -F: '{ printf("%-2s", $2) }' file

That's correct syntax but I still think your logic is incorrect. Show the data you have and the data you want please.
# 9  
Old 12-06-2011
awk

my data is inside test file is as following:
Code:
jsmith:12-11-2011:r234:50

now as I said before I am getting passing 4 variables to over-write the file :

as example I am passing $var2 to modify the date

the new date is going to be 14-11-2011 and will replace the previous date

i was thinking i can use
Code:
echo $var2| awk -F ":" '{printf %-2s, $2}'test

but it doesnt work.

Thanks again

now

Last edited by Franklin52; 12-07-2011 at 03:27 AM.. Reason: Code tags
# 10  
Old 12-06-2011
I still don't understand you. You want to replace field 2 in all lines? Or only one line? or what?

You're not "passing" it to awk. You're feeding it into its standard input, something awk doesn't even read when you give it a filename. you pass variables with -v

If you want to replace field 2 in all lines:
Code:
awk -v VAR2="$VAR2" -v OFS=":" -F: '{ $2=VAR2 } 1' file

# 11  
Old 12-06-2011
sorry , you are right I am not explaining very well.

I am trying to find one instance and replace with variable.

as i said

jsmith:12-11-2011:55:r234

I am going to find 12-11-2011 in al llines and replace it with new $VAR2.

Thanks again for your help
# 12  
Old 12-06-2011
Code:
awk -F: -v OFS=":" -v OLD="12-11-2011" -v NEW="$VAR2" '$2 == OLD { $2=NEW } 1' inputfile > outputfile


Last edited by Corona688; 12-06-2011 at 05:16 PM..
# 13  
Old 12-06-2011
awk

sorry to keep bothering you.

my input is not a file is a user entry coming from a read command .

I have tried your way but it just over-writing the file and makes an empty file.

i did as following :
Code:
awk -F: -v OFS=":" -v OLD="a2345" -v NEW="r2345" '$4 == "a2345" { $4="r2345" } 1' test2 > test2

Thanks again

Last edited by Franklin52; 12-07-2011 at 03:27 AM.. Reason: Please use code tags for code and data samples, thank you
# 14  
Old 12-06-2011
That's not going to work for user input then, because you hardcoded it. Remember that the -v variables define what OLD and NEW mean inside awk, so you don't have to:

Code:
awk -F: -v OFS=":" -v OLD="a2345" -v NEW="r2345" '$4 == OLD { $4=NEW } 1' test2 > test2

so you can substitute:

Code:
awk -F: -v OFS=":" -v OLD="a2345" -v NEW="$VAR2" '$4 == OLD { $4=NEW } 1' test2 > test2

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Translate bash mathematical calculation to awk

this code below is very useful in calculating mean and quartiles. however, i would really like to translate it to awk without having to write to any external file: #!/bin/sh filename="tmp.txt" sort -n $1 >$filename rows=`wc -l $filename|cut -d' ' -f1` q2=`echo "($rows+1)/2" |bc` ... (3 Replies)
Discussion started by: SkySmart
3 Replies

2. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

Hi, I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :- ./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies

3. Shell Programming and Scripting

Translate grep to awk

sed -n "2,10p" lfile | egrep error | egrep -vc memory sed -n "2,10p" lfile | egrep error | egrep -v memory sed -n "2,10p" lfile | egrep error | egrep -c memory sed -n "2,10p" lfile | egrep error | egrep memory above are four separate commands. i want to combine the grep in each... (7 Replies)
Discussion started by: SkySmart
7 Replies

4. Shell Programming and Scripting

translate this string

Hi, I'm using code below to assign title for Putty Window to show user@hostname+curr directory. Trying to read this "write only" language, can anybody help me to go thru this string, too many thing in it I can't expaing Tx T export PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:... (1 Reply)
Discussion started by: trento17
1 Replies

5. UNIX for Dummies Questions & Answers

Help translate code

Hi, all of you!!! I have this code and I won to build-in some more code. I know this is a lot of code. if ; then if ; then SYSROOT="$1" S_SCRIPT="cd $1 ; ./etc/rc.sysinit 2>&1 &" fi else ... (22 Replies)
Discussion started by: jokerper
22 Replies

6. UNIX for Dummies Questions & Answers

translate timestamp

my file creation timestamp looks like this: Nov 4 15:44:34 EST 2009 i need to translate into 091104 my way is to awk on $1, $2, $5, but i don't know how to tranlate Nov to 11 ---------- Post updated at 03:01 PM ---------- Previous update was at 11:07 AM ---------- i resolved my post... (0 Replies)
Discussion started by: tjmannonline
0 Replies

7. Shell Programming and Scripting

replcement/translate of ' to ''

Hi i have a variable whose value contains '(single quote) i want to replace single quote with two single quotes ex- i want to replace abc's second center with abc''s second center. Plz help me. thanks (2 Replies)
Discussion started by: bmrout007
2 Replies

8. Shell Programming and Scripting

translate rc to string

Hi Maybe you can suggest a nicer way to do the following: RET_STR=$(echo ${RET} | sed -e 's/0/Object is not mapped/' \ -e 's/1/Operation Internal Error/' \ -e 's/2/Operation Invalid Arguments/' \ -e 's/3/Object is mapped/' \ -e 's/4/Path not found/') (3 Replies)
Discussion started by: ynir
3 Replies

9. Shell Programming and Scripting

Can someone help translate this snippet?

Hello all - This snippet from a script runs on a Tru64 machine (ksh). if ps -ef | grep thing1 | grep dtsession | grep -v grep then echo "Killing Thing1 desktop session" kill -9 'ps -ef | grep thing1 | grep dtsession | grep -v grep | awk '{FS = " "}{print $2}'' fi I'm... (7 Replies)
Discussion started by: Heron
7 Replies

10. Shell Programming and Scripting

translate text (1 position) with sed

Hello, I'm trying to translate a fixed length (the first 6 positions) that begins with a 0 to overwrite the field with an *. Any suggestion? File 1 ------- 013344 01:20 222343 19:30 233333 20:30 File 2 (result) ----------------- ****** 01:20 222343 19:30 233333 20:30 (5 Replies)
Discussion started by: peterk
5 Replies
Login or Register to Ask a Question