Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Dec 2012 17:23:16 +0100
From:      Polytropon <freebsd@edvax.de>
To:        Devin Teske <dteske@freebsd.org>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>, Jack Mc Lauren <jack.mclauren@yahoo.com>
Subject:   Re: using AWK
Message-ID:  <20121217172316.79d8e198.freebsd@edvax.de>
In-Reply-To: <18B0C79B-AF04-48D1-AF26-1B8A8B3641C1@fisglobal.com>
References:  <1355744359.61103.YahooMailNeo@web160104.mail.bf1.yahoo.com> <18B0C79B-AF04-48D1-AF26-1B8A8B3641C1@fisglobal.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 17 Dec 2012 08:16:26 -0800, Devin Teske wrote:
> 
> On Dec 17, 2012, at 3:39 AM, Jack Mc Lauren wrote:
> 
> > Hi guys
> > 
> > How can I read a file which contains a number and assign that number to a variable via awk programming? By the way, I want to use this awk program in a shell script.
> > 
> > Thanks in advance
> 
> Try this:
> 
> awk -v file=/etc/ttys 'BEGIN { getline line <file; printf "First line from %s: %s\n", file, line }'

Or more verbose:




#!/bin/sh

filename=$1

echo "file is ${filename} with content:"
cat ${filename}

echo "calling awk..."
awk "BEGIN { 
        getline no < \"${filename}\"
        close \"${filename}\"
        print no
        print no * 2
}"




# EXAMPLE:
# --------
#
# % ./awkvar.sh /tmp/no.txt
# file is /tmp/no.txt with content:
# 12345
# calling awk...
# 12345
# 24690



The example shows how to use the variable inside awk. You
could get rid of the getline function in case the file
contains only the number you're interested in. If you need
further processing of the file, you can do that inside
awk (e. g. omitting comment lines, obtain data from a given
line number of specific pattern).




-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121217172316.79d8e198.freebsd>