Sponsored Content
Full Discussion: Need help with printf
Top Forums UNIX for Dummies Questions & Answers Need help with printf Post 302332911 by compan023 on Friday 10th of July 2009 10:31:54 AM
Old 07-10-2009
Need help with printf

Hi,
I have just completed my first script (Smilie) and now i just need to format it with printf.
This is what I have:
Code:
#!/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 BLKS FREE U
SED IUSED PERIUSED MOUNTEDON
#set -x
do
(( INUSE = $BLKS - $FREE ))
(( TOTB = $INUSE + $TOTB ))
(( TOTF = $BLKS - $INUSE ))
(( TOTI = $TOTB  - $FREE ))
echo $FSYSTEM $BLKS $FREE $INUSE $MOUNTEDON
done
echo Total Blocks  Total Free  Total In Use 
echo  $TOTB  $TOTF  $TOTI

And this is what I would like the return to look like:
Code:
 FSYSTEM         BLKS       FREE         INUSE         MOUNTEDON
/dev/hd4      1024.00        966.60       58             /
/dev/hd2      3392.00        288.55       3104          /usr
/dev/hd9var  2048.00        1976.46     72             /var
/dev/hd3      2048.00        1834.09     214           /tmp
/dev/hd1      1536.00        698.94       838          /home
/dev/hd10opt 1024.00      556.55       468          /opt
/dev/fslv00    30720.00     13025.69    17695       /aix52_save_s
/dev/fslv01    1024.00       1023.52     1              /var/adm/perf
/dev/nmon_lv 1600.00 1   584.19       16             /nmondata

Total Blocks         Total Free              Total In Use
22466                 1584                      20882

could somebody please help me figure out where, and what exactly to put in for the printf command. I have read through the man page on printf and am still unclear about what to do.

Thanks
 

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

How to print output in following format? A..................ok AA................ok AAA..............ok AAAAAA........ok "ok" one under one (4 Replies)
Discussion started by: mirusnet
4 Replies

4. 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

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
LVM(3pm)						User Contributed Perl Documentation						  LVM(3pm)

NAME
Linux::LVM - Perl extension for accessing Logical Volume Manager(LVM) data structures on Linux. SYNOPSIS
use Linux::LVM; Linux::LVM->units('G'); ABSTRACT
The live data used in the examples is included in the DESCRIPTION area for your convenience and reference. DESCRIPTION
units() Get or set the units used to report sizes of LVs, PVs, etc. legal values: hbskmgtpeHBSKMGTPE see man lvm documentation of --units get_volume_group_list() This routine will return an array that contains the names of the volume groups. @vgs = get_volume_group_list(); print "@vgs "; Would yield the following: vg00 get_volume_group_information($) This routine will return all of the volume group information about the specified volume group. %vg = get_volume_group_information("vg00"); foreach(sort keys %vg) { print "$_ = $vg{$_} "; } Would yield the following: access = read/write act_pv = 2 alloc_pe = 3840 alloc_pe_size = 15 alloc_pe_size_unit = GB cur_lv = 3 cur_pv = 2 free_pe = 864 free_pe_size = 3.38 free_pe_size_unit = GB max_lv = 256 max_lv_size = 255.99 max_lv_size_unit = GB max_pv = 256 open_lv = 0 pe_size = 4 pe_size_unit = MB status = available/resizable total_pe = 4704 uuid = BBq8si-NyRR-9ZNW-3J5e-DoRO-RBHK-ckrszi vg_number = 0 vg_size = 18.38 vg_size_unit = GB vgname = vg00 get_logical_volume_information($) This routine will return all of the logical volume information associated with the specified volume group. %lv = get_logical_volume_information("vg00"); foreach $lvname (sort keys %lv) { foreach(sort keys %{$lv{$lvname}}) { print "$_ = $lv{$lvname}->{$_} "; } print " "; } Would yield the following results: alloc_le = 1024 allocation = next free cur_le = 1024 device = 58:0 lv_number = 1 lv_size = 4 lv_size_unit = GB name = /dev/vg00/lvol1 open_lv = 0 read_ahead = 1024 status = available write_access = read/write alloc_le = 1280 allocation = next free cur_le = 1280 device = 58:1 lv_number = 2 lv_size = 5 lv_size_unit = GB name = /dev/vg00/lvol2 open_lv = 0 read_ahead = 1024 status = available write_access = read/write alloc_le = 1536 allocation = next free cur_le = 1536 device = 58:2 lv_number = 3 lv_size = 6 lv_size_unit = GB name = /dev/vg00/lvol3 open_lv = 0 read_ahead = 1024 status = available write_access = read/write get_physical_volume_information($) This routine will return all of the information information about the physical volumes assigned to the specified volume group. %pv = get_physical_volume_information("vg00"); foreach $pvname (sort keys %pv) { foreach(sort keys %{$pv{$pvname}}) { print "$_ = $pv{$pvname}->{$_} "; } print " "; } Would yield the following results: device = /dev/hda3 free_pe = 0 pv_number = 1 status = available / allocatable total_pe = 2160 device = /dev/hda4 free_pe = 864 pv_number = 2 status = available / allocatable total_pe = 2544 get_lv_info($) This routine will return all of the information about the specified logical volume. The information will be returned in a hash. get_lv_info %lv = get_lv_info("/dev/vg00/lvol1"); foreach (sort keys %lv) { print "$_ = $lv{$_} "; } Would yield the following results: access = read/write alloc_le = 1024 allocation = next free block_device = 58:0 current_le = 1024 lv_name = /dev/vg00/lvol1 lv_number = 1 lv_open = 0 read_ahead = 1024 size = 4 size_unit = GB status = available vg_name = vg00 get_pv_info($) This routine will return all of the information about the specified physical volume. The information will be returned in a hash. %pv = get_pv_info("/dev/hda3"); foreach (sort keys %pv) { print "$_ = $pv{$_} "; } Would yield the following results: alloc_pe = 2160 allocatable = yes (but full) free_pe = 0 num_lvols = 2 pe_size = 4096 pe_size_unit = KByte pv_name = /dev/hda3 pv_number = 1 sectors = 17703630 size = 8.44 size_info = NOT usable 4.19 MB [LVM: 136 KB] size_unit = GB status = available total_pe = 2160 uuid = 2c5ADu-oEdt-ovCe-rqp0-MWpF-I5u1-8XigH4 vg_name = vg00 Command Output Used In The Above Examples: /sbin/vgdisplay -v --- Volume group --- VG Name vg00 VG Access read/write VG Status available/resizable VG # 0 MAX LV 256 Cur LV 3 Open LV 0 MAX LV Size 255.99 GB Max PV 256 Cur PV 2 Act PV 2 VG Size 18.38 GB PE Size 4 MB Total PE 4704 Alloc PE / Size 3840 / 15 GB Free PE / Size 864 / 3.38 GB VG UUID BBq8si-NyRR-9ZNW-3J5e-DoRO-RBHK-ckrszi --- Logical volume --- LV Name /dev/vg00/lvol1 VG Name vg00 LV Write Access read/write LV Status available LV # 1 # open 0 LV Size 4 GB Current LE 1024 Allocated LE 1024 Allocation next free Read ahead sectors 1024 Block device 58:0 --- Logical volume --- LV Name /dev/vg00/lvol2 VG Name vg00 LV Write Access read/write LV Status available LV # 2 # open 0 LV Size 5 GB Current LE 1280 Allocated LE 1280 Allocation next free Read ahead sectors 1024 Block device 58:1 --- Logical volume --- LV Name /dev/vg00/lvol3 VG Name vg00 LV Write Access read/write LV Status available LV # 3 # open 0 LV Size 6 GB Current LE 1536 Allocated LE 1536 Allocation next free Read ahead sectors 1024 Block device 58:2 --- Physical volumes --- PV Name (#) /dev/hda3(1) PV Status available / allocatable Total PE / Free PE 2160 / 0 PV Name (#) /dev/hda4(2) PV Status available / allocatable Total PE / Free PE 2544 / 864 SEE ALSO
vgdisplay(1M) lvdisplay(1M) pvdisplay(1M) AUTHOR
Chad Kerner, <chadkerner@yahoo.com> COPYRIGHT AND LICENSE
Copyright 2003 by Chad Kerner This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-02-11 LVM(3pm)
All times are GMT -4. The time now is 01:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy