企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

每日一个Linux命令解析——printf

wudianyun 2025-02-21 15:39:47 精选文章 8 ℃

printf:printf 是一个常用的 shell 命令,用于格式化输出。它类似于 C 语言的 printf 函数,可以通过格式指定符控制输出内容的格式。

一、语法

printf FORMAT [ARGUMENT]...

主要特点

  1. 无需换行:printf 默认不会自动在输出末尾添加换行符,需要手动指定。
  2. 格式化输出:通过指定 FORMAT 可以控制输出的对齐、精度、宽度等。

二、常用的说明符

格式符

含义

示例

%s

字符串

printf "%s\n" "hello" 输出 hello

%c

单个字符

printf "%c\n" 65 输出 A

%d

十进制整数(有符号)

printf "%d\n" 42 输出 42

%u

十进制整数(无符号)

printf "%u\n" 42 输出 42

%o

八进制整数

printf "%o\n" 42 输出 52

%x

十六进制整数(小写字母)

printf "%x\n" 42 输出 2a

%X

十六进制整数(大写字母)

printf "%X\n" 42 输出 2A

%f

浮点数

printf "%.2f\n" 3.14159 输出 3.14

%e

科学计数法(小写 e)

printf "%e\n" 12345.678 输出 1.234568e+04

%E

科学计数法(大写 E)

printf "%E\n" 12345.678 输出 1.234568E+04

%%

输出百分号 %

printf "%%\n" 输出 %

三、修饰符

可以结合格式符使用的修饰符包括:

  • 宽度控制

修饰符

含义

示例

%-WIDTHs

左对齐,占用指定宽度

`printf "

%WIDTHs

右对齐,占用指定宽度

`printf "

  • 精度控制

修饰符

含义

示例

%.PRECISIONs

输出字符串时,最多显示指定字符数

printf "%.3s\n" "hello" 输出 hel

%.PRECISIONf

浮点数保留指定小数位

printf "%.2f\n" 3.14159 输出 3.14

  • 填充控制

修饰符

含义

示例

%0WIDTHd

用零填充至指定宽度

printf "%05d\n" 42 输出 00042

% WIDTHd

默认用空格填充至指定宽度

printf "%5d\n" 42 输出 42


  • 转义序列

printf 支持以下常用的转义序列:

转义序列

含义

示例

\n

换行

printf "Hello\nWorld\n" 输出两行

\t

制表符

printf "Hello\tWorld\n" 输出 Hello World

\\

反斜杠

printf "\\n\n" 输出 \n

\b

退格符

printf "Hello\b\bWorld\n" 输出 HelWorld

\r

回车

printf "123\rABC\n" 输出 ABC

四、示例

  1. 格式化字符串
printf "Name: %s, Age: %d\n" "Alice" 25
输出:
Name: Alice, Age: 25
  1. 控制宽度和对齐
printf "|%-10s|%10d|\n" "Item" 123
输出:
|Item      |       123| 
  • %-10s:左对齐,占 10 个字符宽度。
  • %10d:右对齐,占 10 个字符宽度。
    1. 浮点数格式化
    printf "PI: %.2f\n" 3.14159
    输出:
    PI: 3.14

    %.2f 表示保留两位小数。

    1. 输出对齐表格
    printf "|%-10s|%10s|\n" "Name" "Score"
    printf "|%-10s|%10d|\n" "Alice" 95
    printf "|%-10s|%10d|\n" "Bob" 88
    输出:
    |Name      |     Score|
    |Alice     |        95|
    |Bob       |        88|
    1. 自动重复格式符
    printf "|%s|\n" "One" "Two" "Three"
    输出:
    |One|
    |Two|
    |Three|

    printf 是一个强大的工具,通过灵活使用格式符和修饰符,可以满足多样的输出需求。

    "码字不易!喜欢就点个赞吧,你的支持是我继续分享的动力!"

    Tags:

    最近发表
    标签列表