printf脚本使用格式化字符串

#!/bin/bash

#使用格式化字符串来指定字符串的宽带,左右对齐方式等。

printf "%-5s %-10s %-4s\n"  NO. NAME  MARK

printf "%-5s %-10s %-4.2f\n" 1 Jack 80.3456

printf "%-5s %-10s %-4.2f\n" 2 James 90.9989

printf "%-5s %-10s %-4.2f\n" 3 Jeff 77.564

# bash printf.sh 

NO.   NAME       MARK

1     Jack       80.35

2     James      91.00

3     Jeff       77.56

备注:%s,%c,%d和%f都是格式替换符,它们定义了该如何打印后续参数。%-5s指明了一个格式为左对齐且宽度为5的字符串替换(-表示左对齐,如果不指明-,就表示右对齐)。

宽度指定了保留给某个字符串的字符数量,对NAME而言,其保留宽度是10,因此,任何NAME字段的内容都会被显示在10字符宽的保留区域内,如果内容不足10个字符,余下的则以空格填充。

对于浮点数,可以使用其它参数对小数部分进行四舍五入;对于MARK字段,我们将其格式化为%-4.2f,其中的.2是指定保留两位小数,例子中的91.00是被递进了的。

需要注意的是,每行的格式字符串后都有一个换行符号\n;默认情况下,printf不会自动添加换行符,必须在需要的时候手动添加。

结束。

posted @ 2020-07-31 11:48  巴州夜雨  阅读(260)  评论(0编辑  收藏  举报