shell编程-字符截取命令-printf命令

前言

  • printf命令并不是字符提取命令,最常用在awk列提取命令的标准输出格式。与echo类似,都是输出。放在awk之前来学习,更容易理解。
  • 学习这条命令的原因: awk命令中最基本的命令输出方法。在这个awk命令当中不能直接调用系统命令cat、echo,只能使用printf。awk识别的是printf。

1. printf命令

命令: printf '输出类型格式输出' 输出内容

小提示: 也可以是双引号,只要加了单引号或双引号,才会知道,里面的%s 不是要输出的字符串。

输出类型:

l输出类型 含义
%ns 输出字符串。n是数字代输出几个字符
%ni 输出整数。n是数字指代输出几个数字
%m.nf 输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出8位数,其中两位是小鼠,6位是整数

输出格式:

输出格式 含义
\a 输出警告声音
\b 输出退格键,也就是Backspace
\f 清除屏幕
\n 换行
\r 回车,也就是enter键
\t 水平输出退格键,也就是tab键
\v 垂直输出退格键,也就是tab键

开始实验:

  • 命令: printf %s 1 2 3 4 5 6
    命令:printf %s%s%s 1 2 3 4 5 6
    命令: printf '%s%s%s' 1 2 3 4 5 6
    命令: printf '%s%s%s\n' 1 2 3 4 5 6

  • 命令: printf '%s' $(cat student)
    作用:不调整输出格式

  • 命令: printf('%s\t %s\t %s\t \n') $(cat student)
    作用:调整格式输出

  • (1) 写三个%s 说明每三个为一组作为输出。在这里插入图片描述
    在这里插入图片描述

小提示: 输出的内容太是需要进行格式化调整的,可以输出指定的字串也可以输出一个文件内容。输入cat时自动调整文件内容的格式,是因为在写这个命令的同时,就已经把格式调整加入到里面了。printf不能直接加文件名,也不能用管道符来接受第一条命令的执行结果。

2.printf和print的区别

  • 在awk命令的输出中支持print和printf命令
    print: print会在每个输出之后自动加入一个换行符 (Linux默认没有print命令)
    printf: printf是标准输出格式输出命令,并不会在自动加入换行符,如果需要换行,需要手工加入换行符。

  • 说明: 再次强调,Linux系统是没有print命令的。 print、printf这两个命令是在awk命令之中使用的,print只能在awk里面用,不能再系统当中用的,系统当中没有这个print这个命令的。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46818279/article/details/107525678