Sponsored Content
Top Forums Programming Passing printf formatting parameters as variables Post 302888788 by mph on Monday 17th of February 2014 10:31:18 AM
Old 02-17-2014
Code Passing printf formatting parameters as variables

Hi,

I haven't programed in C in a few years. I have been doing a lot of shell scripting, I.E. not really programming anything heavy. Smilie

That said, I have a script that gives hourly usage statistics for our email server. It runs w-a-y to slow as a script for my impatience, and needs to be converted to C. That and some Windows admins have expressed interest in it. Porting to C would be easier to cross compile that a script. Smilie

In the shell script I have an output function where I can pass text color, formatting (4.3f, 6s, etc.) and value.
Shell Code
Code:
output{
    printf "\033[$1m%$2\033[0m" $3 
}

Here's what I have in C so far.
Code:
int output(int clr,float val){  // Add in the format if possible
   switch (clr) {
      case 0: printf("%c[%dm %2.3f ", 0x1B, 33, val); // print Yellow (Lower than average usage)
        break;
      case 1: printf("%c[%dm %2.3f ", 0x1B, 32, val); // print Green (Medium)
        break;
      case 2: printf("%c[%dm %2.3f ", 0x1B, 31, val); // print Red  (High)
        break;
      case 3: printf("%c[%dm %2.3f ", 0x1B, 0, val); // print White  (All else)
        break;
    }
}

Is there a way to pass the format parameter as a variable? I.E. pearl uses something like this %${fmt}f. Can this be done in C?

There are 5 columns, each can have their own color, width, format(d,s,f...) and value.
Obviously, the colors won't show up here. But you get the idea.
Code:
Hour Count APM AMBPM  MBytes
----+-----+---+-----+-------
  00   485   8  0.64   38.45
  01   511   9  0.06    3.51
  02   517   9  0.07    4.43
...

It's not a show stopper, but it would save me from having to create routines for every different format.

Any help would be greatly appreciated.

Thank You
 

10 More Discussions You Might Find Interesting

1. Answers to Frequently Asked Questions

Passing variables/arguments/parameters to commands

A good place to start is simple variable passing.... Passing variables from one script to another The next level is passing a variable into a more complex command such as using a variable in a sed command. There are some simple quoting techniques that are very general. These are mentioned... (0 Replies)
Discussion started by: Perderabo
0 Replies

2. Shell Programming and Scripting

passing more than 9 parameters

hi, i am passing around 14 parameters for a script a=$1 b=$2 c=$3 d=$4 e=$5 f=$6 g=$7 h=$8 i=\"${9}\" shift j=\"${1}\" still for j it is displaying the 1st parameter value..how to make it take the 10th parameter (2 Replies)
Discussion started by: dnat
2 Replies

3. Shell Programming and Scripting

awk printf formatting using string format specifier.

Hi all, My simple AWK code does C = A - B If C can be a negative number, how awk printf formating handles it using string format specifier. Thanks in advance Kanu :confused: (9 Replies)
Discussion started by: kanu_pathak
9 Replies

4. Shell Programming and Scripting

using AWK printf with userdefine variables

seems simple but i've not been successfull in adding the value of a Variable to a every line of a file using AWK & printf i've come up with the following, but it's not working.:mad: --- mydatafile.dat e.g. of data in file: cau_actvty_fa_lrf.ksh fan_soco_fa.ksh ny_sum_lst.ksh... (4 Replies)
Discussion started by: danmauer
4 Replies

5. Shell Programming and Scripting

Help formatting a string. Something like printf?

Hi I'm having a problem with converting a file: ID X 1 7 1 8 1 3 2 5 2 7 2 2 To something like this: ID X1 X2 X3 1 7 8 3 2 5 7 2 I've tried the following loop: for i in `cat tst.csv| awk -F "," '{print $1}'| uniq`;do grep -h $i... (4 Replies)
Discussion started by: flotsam
4 Replies

6. UNIX for Dummies Questions & Answers

printf formatting

Is there a way to make these 2 numbers - $482477.37 and $1875000.00 look like $482,477.37 and $1,875,000.00 with printf? (4 Replies)
Discussion started by: nickg
4 Replies

7. Shell Programming and Scripting

String formatting using awk printf

Hi Friends, I am trying to insert lines of the below format in a file: # x3a4914 Joe 2010/04/07 # seh Lane 2010/04/07 # IN01379 Larry 2010/04/07 I am formatting the strings as follows using awk printf: awk 'printf "# %s %9s %18s\n", $2,$3,$4}' ... (2 Replies)
Discussion started by: sugan
2 Replies

8. Shell Programming and Scripting

assinging the printf result to variables

Getting the below error while executing this. Able to run the below commands Individually. #!/bin/bash a=$(printf "%d\n" 0x01E); b=$(printf "%d\n" 0x01A); echo $a echo $b c=`expr $a - $b` echo $c syntax error at line 2: `a=$' unexpected (2 Replies)
Discussion started by: sai_1712
2 Replies

9. Shell Programming and Scripting

Text Formatting using printf[ksh]

Hi All, I am attempting to create a fixed length tilde delimited file using printf. The variables are initialized to fixed length blank spaces a=' ' b=' ' c=' ' d=' ' Sometimes the variable might contain values and sometimes they are... (5 Replies)
Discussion started by: angie1234
5 Replies

10. 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
NIFTI_STATS(1)							   User Commands						    NIFTI_STATS(1)

NAME
nifti_stats - compute NIfTI statistical functions SYNOPSIS
nifti_stats [-q|-d|-1|-z] value CODE [p1 p2 p3] DESCRIPTION
nifti_stats supports several distributions (normal, uniform, logistic, chi, etc.) and calculates density or cummulative distribution func- tion (and many more). Values are printed to stdout and can be piped to other tools. value can be a single number or in the form bot:top:step. default ==> output p = Prob(statistic < val). -q ==> output is 1-p. -d ==> output is density. -1 ==> output is x such that Prob(statistic < x) = val. -z ==> output is z such that Normal cdf(z) = p(val). -h ==> output is z such that 1/2-Normal cdf(z) = p(val). Allowable CODEs: CORREL, TTEST, FTEST, ZSCORE, CHISQ, BETA, BINOM, GAMMA, POISSON, NORMAL, FTEST_NONC, CHISQ_NONC, LOGISTIC, LAPLACE, UNIFORM, TTEST_NONC, WEIBULL, CHI, INVGAUSS, EXTVAL, PVAL, LOGPVAL and LOG10PVAL Following CODE are distributional parameters, as needed. Results are written to stdout, 1 number per output line. EXAMPLE
Piping output into AFNI program 1dplot: nifti_stats -d 0:4:.001 INVGAUSS 1 3 | 1dplot -dx 0.001 -stdin SEE ALSO
libnifti(1), nifti_tool(1), nifti1_test(1). Homepage: http://niftilib.sourceforge.net AUTHOR
RW Cox - SSCC/NIMH/NIH/DHHS/USA/EARTH - March 2004 This manual page was written by Michael Hanke <michael.hanke@gmail.com>, for the Debian project (but may be used by others). nifti_stats September 2007 NIFTI_STATS(1)
All times are GMT -4. The time now is 08:52 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy