Passing variables to awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Passing variables to awk
# 1  
Old 08-02-2013
Passing variables to awk

Hi guys,

I need to fetch data from logfile between two given dates,i got the below code from our forum.It works perfect,but i need to enter the value dynamically to awk while running.
Code:
awk '/2012 Jun/{p=1}!/2012 Jul/ && prev~/2012 Jul/ && p{p=0}{prev=$0}p' file

i tried the below code,but it not accepting the variable which i pass,displays all the lines in the file.
Code:
read start
read end
awk -v d="$start" -v d1="$end" '/d/{p=1}!/d1/ && prev~/d1/ && p{p=0}{prev=$0}p' file
ex:start=2013-06-26
    end=2013-08-01

Please advice me,thank u guys
# 2  
Old 08-02-2013
Quote:
Originally Posted by mohanalakshmi
Hi guys,

I need to fetch data from logfile between two given dates,i got the below code from our forum.It works perfect,but i need to enter the value dynamically to awk while running.
Code:
awk '/2012 Jun/{p=1}!/2012 Jul/ && prev~/2012 Jul/ && p{p=0}{prev=$0}p' file

i tried the below code,but it not accepting the variable which i pass,displays all the lines in the file.
Code:
read start
read end
awk -v d="$start" -v d1="$end" '/d/{p=1}!/d1/ && prev~/d1/ && p{p=0}{prev=$0}p' file
ex:start=2013-06-26
    end=2013-08-01

Please advice me,thank u guys

Try this:
Code:
awk -v d="$start" -v d1="$end" '$0 ~ d{p=1} $0 !~ d1 && prev ~ d1 && p{p=0}{prev=$0}p' file

This User Gave Thanks to Franklin52 For This Post:
# 3  
Old 08-02-2013
Hi Thanks for ur quick responseSmilie Smilie.It worked.could u pls say me how the code works.
# 4  
Old 08-02-2013
Quote:
Originally Posted by mohanalakshmi
Hi Thanks for ur quick responseSmilie Smilie.It worked.could u pls say me how the code works.
$0 ~ d is a match for regular expressions, if the record $0 contains the value of the variable d the condition is true.
# 5  
Old 08-02-2013
A dirty trick:
Code:
awk '/'${start}'/{p=1}!/'${end}'/ && prev~/'${end}'/ && p{p=0}{prev=$0}p' file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk - passing variables in and out

Am looking to pass some Linux environment variables into AWK , can I simply use the -v option ? awk -F: -v AHOME=$HOME '{ if {rm AHOME/file.txt a=2 } }' config.txt ... (4 Replies)
Discussion started by: alldbest
4 Replies

2. Shell Programming and Scripting

Passing awk variables to bash variables

Trying to do so echo "111:222:333" |awk -F: '{system("export TESTO=" $2)}'But it doesn't work (2 Replies)
Discussion started by: urello
2 Replies

3. Shell Programming and Scripting

PAssing variables to awk arithmetic

Hi all, I am wanting to pass variables from a file to an awk arithmetic formula. When I use the formula with the value it works well. As soon as I make these variables I get an inf (infinity) response. I can certainly echo the variables back and they look correct. My googling for answers has... (3 Replies)
Discussion started by: gafoleyo73
3 Replies

4. Shell Programming and Scripting

Passing variables into AWK

I'm trying to use awk to write new entries to a hosts file if they don't exist. I need to do so depending on the type of system I have. Below is what I have, but it isn't working. awk -v myip1=$IP1 myip2=$IP2 myhost1=$HOST1 myhost2=$HOST2' BEGIN { mqhost1=0; mqhost2=0; stap1=0; stap2=0; } ... (4 Replies)
Discussion started by: Boomn4x4
4 Replies

5. Shell Programming and Scripting

ksh passing to awk multiple dyanamic variables awk -v

Using ksh to call a function which has awk script embedded. It parses a long two element list file, filled with text numbers (I want column 2, beginning no sooner than line 45, that's the only known thing) . It's unknown where to start or end the data collection, dynamic variables will be used. ... (1 Reply)
Discussion started by: highnthemnts
1 Replies

6. Shell Programming and Scripting

Passing awk variables to shell

Hi. I need to parse file and assign some values to variables, right now i do like below MYHOMEDIR=`awk '/Home/ {print $NF}' output.txt` MYSHELL=`awk '/Shell/ {print $NF}' output.txt` PRGRP=`awk '/Primary/ {print $NF}' output.txt` SECGRP=`awk '/Second/ {print $NF}' output.txt` In this... (10 Replies)
Discussion started by: urello
10 Replies

7. Shell Programming and Scripting

Passing space seprated variables in awk

Hi, How to pass space seprated variables in awk. (HP-UX, sh shell) I have the problem like below: var="Hello" var2="Manu Batham" echo $var2 | awk -v variable=${var} '{ printf "%s %s", variable, $1}' and its output is: Hello Manu while output should be: Hello Manu Batham Please... (4 Replies)
Discussion started by: manubatham20
4 Replies

8. Shell Programming and Scripting

Passing awk Variables

I am trying to pass the results from a variable gathered from awk, however when I echo the 'PARSE' and 'SUB', the response is blank. This is my command. awk -F= '/Unit/''{ PARSE=substr($2,1,5) ; SUB=substr($2,1,1) }' inputfile.lst Is this a kind of valid attempt or am I obligated to declare... (3 Replies)
Discussion started by: gozer13
3 Replies

9. Shell Programming and Scripting

Passing Variables to Awk

Hi I have a unix shell script with an awk statement. I would like to print some of the fields of an input file. However, I would like to print them dynamically, ie by passing the literal $1 $3 into the script to define the output. I have tried the following: variable1='$1' awk... (2 Replies)
Discussion started by: Bab00shka
2 Replies

10. Shell Programming and Scripting

Passing Variables to AWK

Does anybody have an explanation for the following: The following scripts runs fine on IRIX64 6.5 but has bugs on Solaris 8. #! /bin/sh echo run only on an SGI machine echo type in linenumber read j echo value read value awk -f rmspass2 level=$value $j'step1.mlf' When the script is... (5 Replies)
Discussion started by: AreaMan
5 Replies
Login or Register to Ask a Question