1、printf 命令
用于格式化并输出数据,它比更基础的 echo 命令更强大和稳定。
printf "格式字符串" [参数1] [参数2] ...
printf不会自动添加换行符,除非你在格式字符串中明确使用\n。特性 说明 无自动换行 必须显式写 \n才换行精确格式控制 支持 C 风格格式说明符(如 %s,%d,%6.2f)无默认分隔符 完全由格式字符串控制布局
格式说明符 (Format Specifiers)
| 说明符 | 用途 | 示例 | 输出 |
|---|---|---|---|
%s |
字符串 | printf "%s\n" "Hello" |
Hello |
%d |
十进制整数 | printf "%d\n" 25 |
25 |
%f |
浮点数 | printf "%f\n" 3.14 |
3.140000 |
%x |
十六进制整数 | printf "%x\n" 255 |
ff |
%o |
八进制整数 | printf "%o\n" 8 |
10 |
%c |
单个字符 | printf "%c\n" 65 |
A |
%b |
解释反斜杠转义的字符串 | printf "%b" "Hello\nWorld" |
Hello 换行 World |
%q |
以 Shell 可重用的格式输出 | printf "%q" "A B" |
A\ B |
常用转义序列 (Escape Sequences)
| 序列 | 作用 |
|---|---|
\n |
换行 (Newline) |
\t |
制表符 (Tab) |
\\ |
反斜杠 (Backslash) |
\0 |
空字符 (Null) |
\" |
双引号 (Double quote) |
如:
awk 'BEGIN { printf "|%-15s|\n", "Alice" }' //将字符串左对齐,占用至少 15 个字符宽度,不足部分用空格填充// 输出,"Alice"(5字符) + 10个空格 = 15字符,左对齐
|Alice |
| 部分 | 含义 |
|---|---|
% |
格式说明符开始标志 |
- |
左对齐(默认是右对齐) |
15 |
最小字段宽度为 15 个字符 |
s |
表示参数是 字符串(string) |
注:字符串超过最小宽度字符,不会截断! 字符串完整输出。宽度只是“最小值”,超长照常输出。
2、print 命令
print [item1, item2, ...]
-
各项目之间用逗号分隔,输出时会被输出字段分隔符(OFS) 隔开,默认为空格。
-
每条
print语句执行后会自动添加换行符。 -
如果
print后面没有参数,省略表达式,默认输出$0(整行)特性 说明 自动换行 每次 print后自动添加\n(换行符)字段分隔 多个表达式间用 OFS(Output Field Separator) 分隔,默认是空格 简单直接 适合快速输出,无需格式控制