Home > Archive > AWK > March 2008 > filling left side of string
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
filling left side of string
|
|
| happytoday 2008-03-02, 6:58 pm |
| I am accepting a value entered from batch file using set /p command. I
need to add spaces to the left of the number entered inside an awk
script
nawk -v number=%number% -f test.awk test.dat
What function used to fill the left side of the number with spaces to
complete 7 characters as fixed length of any nymber entered.
Thanks
| |
| Ted Davis 2008-03-02, 6:58 pm |
| On Sun, 02 Mar 2008 08:39:46 -0800, happytoday wrote:
> I am accepting a value entered from batch file using set /p command. I
> need to add spaces to the left of the number entered inside an awk script
>
> nawk -v number=%number% -f test.awk test.dat
>
>
> What function used to fill the left side of the number with spaces to
> complete 7 characters as fixed length of any nymber entered. Thanks
You might like gawk better:
<http://gnuwin32.sourceforge.net/packages/gawk.htm>
The Windows version has a .hlp help file with lots of information.
You need printf() or sprintf(), depending on what you do with the padded
number.
printf "%7i", number
Note that you have to include a \n explicitly at the end of each line.
--
T.E.D. (tdavis@mst.edu) MST (Missouri University of Science and Technology)
used to be UMR (University of Missouri - Rolla).
| |
| happytoday 2008-03-03, 3:59 am |
| On Mar 2, 7:22=A0pm, Ted Davis <tda...@umr.edu> wrote:
> On Sun, 02 Mar 2008 08:39:46 -0800, happytoday wrote:
t[color=darkred]
>
>
>
> You might like gawk better:
> <http://gnuwin32.sourceforge.net/packages/gawk.htm>
> The Windows version has a .hlp help file with lots of information.
>
> You need printf() or sprintf(), depending on what you do with the padded
> number.
>
> =A0 printf "%7i", number
>
> Note that you have to include a \n explicitly at the end of each line.
>
> --
>
> T.E.D. (tda...@mst.edu) MST (Missouri University of Science and Technology=
)
> used to be UMR (University of Missouri - Rolla).
But I need to use the variable in comparing function not in printing.
So with the set /p I have only numbers without left leading spaces .
filenumber variable in file has left spaces. So I need to fill the
left side of the number with spaces till I reach 7 characters legnth.
Thanks
nawk -v number=3D%number% -f test.awk test.dat
filenumber=3Dsubstr($0,1,7)
if (filenumber=3Dnumber)
=2E...
Thanks
| |
|
| happytoday schreef:
> On Mar 2, 7:22 pm, Ted Davis <tda...@umr.edu> wrote:
>
> But I need to use the variable in comparing function not in printing.
> So with the set /p I have only numbers without left leading spaces .
> filenumber variable in file has left spaces. So I need to fill the
> left side of the number with spaces till I reach 7 characters legnth.
>
> Thanks
>
> nawk -v number=%number% -f test.awk test.dat
>
> filenumber=substr($0,1,7)
> if (filenumber=number)
> ....
>
>
> Thanks
you should try something like:
echo -e '\n\n' | awk '{ x=sprintf("%7i", NR); print x; }'
and try to understand this, than you'll get the idea if what Ted wrote
(at least i hope you get it ;-)
another aproach might be to not compare ' 1' with ' x'
but do a numeric comparison
filenumber=substr($0,1,7)
if (0+filenumber==1*number)
--
Luuk
| |
| Ted Davis 2008-03-03, 7:58 am |
| On Sun, 02 Mar 2008 22:57:35 -0800, happytoday wrote:
> But I need to use the variable in comparing function not in printing. So
> with the set /p I have only numbers without left leading spaces .
> filenumber variable in file has left spaces. So I need to fill the left
> side of the number with spaces till I reach 7 characters legnth.
RTFM
if( string == sprintf "%7i", number ) do something
--
T.E.D. (tdavis@mst.edu)
|
|
|
|
|