Sponsored Content
Full Discussion: printf
Top Forums Shell Programming and Scripting printf Post 302160668 by i9300 on Tuesday 22nd of January 2008 10:00:07 AM
Old 01-22-2008
I could not find the exact way to do what i wanted as well.... I wanted anything on right justify to line up regardless of whatever is on the right justify. I also liked the look of the linux style rc scripts.
I beleve now the real answer is in the curses program.
I ended up writing my own function called spaces. It takes the word count from $1 and subtracts it from the stty column width. Regardless of terminal width, the right justify will line up.
Well that might be incorrect depending on what you have in $2.

Here is the code:
Code:
spaces () {
integer WIDTH=`stty|grep columns|awk '{print $6}'|awk -F";" '{print $1}'`
let TOTAL=$WIDTH-15
FIELD1=`echo $1 |wc -c`
FIELD2=`echo $2 |wc -c`
integer FIELD1_TOTAL=$FIELD1
let SUM=$TOTAL-$FIELD1_TOTAL
TAB=`echo ' '|sed -e :a -e "s/^.\{1,$SUM\}$/ &/;ta"`
echo "$1 $TAB $2"
}

You would call it in a script with:
spaces "something on the left" "something on the right"
spaces "aaaa aaa aaaa" ok

This is what it looks like: I also embed color into variable for "OK" so it shows in green.

Code:
OK="\033[1;32mOK"
FAILED="\033[1;31mFAILED"

Code:
CHECKING SVM MIRRORS:
d0 [ c1t0d0s0 ]                                                                                        OK
d10 [ c1t0d0s1 ]                                                                                       OK
d30 [ c1t0d0s3 ]                                                                                       OK
d40 [ c1t0d0s4 ]                                                                                       OK
d50 [ c1t0d0s5 ]                                                                                       OK
d60 [ c1t0d0s6 ]                                                                                       OK
PRIMARY MIRROR: c1t0d0                                                                                 OK
SVM SECONDARY MIRROR:                                                                                  FAILED

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

printf question

can you take input from another command and do printf? such as awk '{print $2,$1}' | sort -k1,1 -k2,2 | printf "%-10s,%15s" this does not work.. but there must be a way.. please help me.. thank you. (3 Replies)
Discussion started by: hankooknara
3 Replies

2. Programming

printf

What is the output of the following program considering an x86 based parameter passing sequence where stack grows towards lower memory addresses and that arguments are evaluated from right to left: int i=10; int f1() { static int i = 15; printf("f1:%d ", i); return i--; } main() {... (2 Replies)
Discussion started by: arunviswanath
2 Replies

3. Shell Programming and Scripting

printf in awk

Hi friends.. I am confused about awk printf option.. I have a comma separated file 88562848,21-JAN-08,2741079, -1188,-7433,TESTING 88558314,21-JAN-08,2741189, -1273,-7976,TESTING and there is a line in my script ( written by someone else) What is the use of command? I guess... (10 Replies)
Discussion started by: clx
10 Replies

4. UNIX for Dummies Questions & Answers

Need help with printf

Hi, I have just completed my first script (:D) and now i just need to format it with printf. This is what I have: #!/bin/ksh TOTB=0 TOTF=0 TOTI=0 HOST=`hostname` echo " FSYSTEM BLKS FREE INUSE MOUNTEDON" df -m | grep -v ":"|grep -v Free|grep -v "/proc"| while read FSYSTEM... (2 Replies)
Discussion started by: compan023
2 Replies

5. Shell Programming and Scripting

Printf problem

I am having a major problem with printf, The more I pad it, the less I see :( The problem is in the first function, report Am I ruining output somewhere? I wont print out the names propely, it cuts them off or deletes them completely :( #!/bin/bash report() { printf "%-10s" STUD# ... (2 Replies)
Discussion started by: L0ckz0r
2 Replies

6. Shell Programming and Scripting

awk with printf

Hi, I am using the following code to assign a count value to a variable. But I get nothing. Do you see anything wrong here. I am new to all this. $CTR=`remsh $m -l $MACHINES{$m} -n cat $output | grep -v sent | grep \"$input\" | sort -u | awk '{print $5}'`; Upto sort - u it's... (2 Replies)
Discussion started by: nurani
2 Replies

7. Shell Programming and Scripting

find + printf help

Hi, I have a scripting assignment for an intro to linux class and I'm really confused about how to do something seemingly simple. I am supposed to Print the name of each file in the /data/dir16/subdir1 directory in the following format: "My name is: bin" The desired output example looks like:... (1 Reply)
Discussion started by: danschmidt
1 Replies

8. UNIX for Dummies Questions & Answers

Qsub and printf

Hello, I have some issue with qsub and the standard output : I launch a script that "echoes" the string "abc" and then executes a C program in which I print informations with the printf function ; the .o file contains "abc" but not the information displayed by printf. I also tried... (0 Replies)
Discussion started by: Shaderw
0 Replies

9. Shell Programming and Scripting

Printf statement

The printf statement pay_amount=$(printf "%013.3f" "$4") working perfectly at one path(xxx/home/rsh) and showing error (printf: 216.000: invalid number) at another path(/opt/xxxx/xxxx). what will be the reason? thanks in advance (4 Replies)
Discussion started by: reeta_shri
4 Replies

10. Programming

printf quirk

Hi, Could anyone explain me the logic behind the following program's output? int main() { printf("%d\n", printf("%d %d", 2, 2) & printf("%d %d", 2, 2)); printf("%d\n", printf("%d %d\n", 2, 2) & printf("%d %d\n", 2, 2)); } Ans: 2 22 23 2 2 2 2 4 (2 Replies)
Discussion started by: royalibrahim
2 Replies
PRINTF(1)							   User Commands							 PRINTF(1)

NAME
printf - format and print data SYNOPSIS
printf FORMAT [ARGUMENT]... printf OPTION DESCRIPTION
Print ARGUMENT(s) according to FORMAT, or execute according to OPTION: --help display this help and exit --version output version information and exit FORMAT controls the output as in C printf. Interpreted sequences are: " double quote \ backslash a alert (BEL)  backspace c produce no further output e escape f form feed new line carriage return horizontal tab v vertical tab NNN byte with octal value NNN (1 to 3 digits) xHH byte with hexadecimal value HH (1 to 2 digits) uHHHH Unicode (ISO/IEC 10646) character with hex value HHHH (4 digits) UHHHHHHHH Unicode character with hex value HHHHHHHH (8 digits) %% a single % %b ARGUMENT as a string with `' escapes interpreted, except that octal escapes are of the form or NNN and all C format specifications ending with one of diouxXfeEgGcs, with ARGUMENTs converted to proper type first. Variable widths are han- dled. NOTE: your shell may have its own version of printf, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supports. AUTHOR
Written by David MacKenzie. REPORTING BUGS
Report printf bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report printf translation bugs to <http://translationproject.org/team/> COPYRIGHT
Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO
printf(3) The full documentation for printf is maintained as a Texinfo manual. If the info and printf programs are properly installed at your site, the command info coreutils 'printf invocation' should give you access to the complete manual. GNU coreutils 8.12.197-032bb September 2011 PRINTF(1)
All times are GMT -4. The time now is 05:52 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy