文本处理工具printf命令

使用过c语言的程序员,应该很熟悉printf命令,printf命令模仿了c语言的printf( )函数

printf命令的作用是按照我们指定的格式输出文本

输出文本命令echo和printf有什么区别
看到echo 命令是正常输出一个文本进行换行,而printf是输出文本进行不换行

[[email protected] ~]# echo beijing
beijing
[[email protected] ~]# printf beijing
beijing[[email protected] ~]# 


如果使用printf进行换行输出可以加\n

[[email protected] ~]# printf "beijing\n"
beijing

而printf这么麻烦,但为什么还有人一直在用,它真正的作用是能够格式化输出文本的能力
而打印的时候,echo -e可以使用\n换行进行输出,而printf也可以加\n换行输出,或者也可以加"%s\n"进行输出


而printf的能力在处理多行进行换行的文本时明显是比较快,使用\n的时候如果处理多1000个需要换行的,显示echo -e \n 力不从心,也就是%s这个是代替传入的参数,%s代替了命令中123,456,当我们使用%s\n就会通过printf输出格式化成"abc\n" 以此类推这样都进行将后面的进行格式化输出

[[email protected] ~]# echo -e "123 \n456 \n789 \naaa \nbbb \nccc"
123
456
789
aaa
bbb
ccc
[[email protected] ~]# printf "123 \n456 \n789 \naaa \nbbb \nccc"
123
456
789
aaa
bbb
[[email protected] ~]# printf "%s\n" 123 456 789 aaa bbb ccc
123
456
789
aaa
bbb
ccc

printf还支持多种替换符格式化类型
%s 字符串
%f 浮点格式
%b 相对应的参数中包含转义字符时,可以使用此替换符进行替换,对于的转义字符会被转义
%c ASCII字符,显示相对应参数的第一个字符
%d %i 十进制整数
%o 不带正负号的八进制值
%u 不带正负号的十进制值
%x 不带正负号的十六进制值,使用a至f表示10至15
%X 不带正负号的十六进制值,使用A至F表示10至15
%% 表示“%”本身

转义字符
printf常用的转义符
\a 警告字符,通常为ASCLL的BEL字符
\b 后退
\c 抑制(不显示) 输出结果中任何结尾的转义字符,(只在%b格式指示符控制下的参数字符串中有效,而且任何留在参数里的字符,任何接下来的参数以及任何留在格式字符串中的字符,都被忽略
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ 一个字面上的反斜杠字符,仅在格式字符串中有效
\0ddd 表示1-3位的八进制值字符

比如为每个传入的参数添加一对括号,并且括号内测需要有空格

[[email protected] ~]# printf "[%s] " 12 45 67 78 89  ; echo ""
[12] [45] [67] [78] [89]
[[email protected] ~]# printf "[ %s ] " 12 45 67 78 89  ; echo ""
[ 12 ] [ 45 ] [ 67 ] [ 78 ] [ 89 ] 

使用\t参数“制表符”进行隔开

[[email protected] ~]# printf "%s\t" 12 45 67 78 89 ; echo ""
12      45      67      78      89 

使用\n是换行输出,%f\n浮点型参数输出

[[email protected] ~]# printf "%s\n" 123 45 5676 76
123
45
5676
76
[[email protected] ~]# printf "%f\n" 123 45 5676 76
123.000000
45.000000
5676.000000
76.000000


格式替换符的使用

[[email protected] ~]# printf " %s\n" 12 45 67 78 89 99
 12
 45
 67
 78
 89
 99
[[email protected] ~]# printf "%s %s\n" 12 45 67 78 89 99
12 45
67 78
89 99
[[email protected] ~]# printf "%s %s %s\n" 12 45 67 78 89 99
12 45 67
78 89 99
[[email protected] ~]# printf "%s %s %s %s\n" 12 45 67 78 89 99
12 45 67 78
89 99
[[email protected] ~]# printf "%s %s %s %s %s\n" 12 45 67 78 89 99
12 45 67 78 89
99
[[email protected] ~]# printf "%s %s %s %s %s %s\n" 12 45 67 78 89 99
12 45 67 78 89 99
[[email protected] ~]# printf "12 45 67 78 89 99\n"
12 45 67 78 89 99


使用printf 同样也可以进行颜色输出

也可以加入特定的数字,%7s 7表示当前替换符对应的输出宽度为7个字符宽

原文地址:https://blog.51cto.com/14143894/2473298

时间: 2024-08-09 22:55:29

文本处理工具printf命令的相关文章

Linux中文本搜索工具“grep”命令详解

人生中应该有两次冲动,一次是轰轰烈烈的爱情,一次是说走就走的旅行.我属于第三种,轰轰烈烈的辞职然后马不停蹄的参加了马哥的linux面授班,两周时间内对linux有了些初步的了解,与此同时,两周内八天课程中的各种定义.概念.原理.命令由于量大.琐碎,也着实给我们这些小白一个下马威,即使每天11点撤退也觉得时间不够用.鉴于对自己的负责和马哥的作业要求,特对文本搜索工具grep写些使用指南,其中可能会有描述不确切或有偏颇之处,望及时指正. 开始--. 首先,要说一下grep是什么,用在什么地方. gr

centos 7中的文本处理工具sed命令的使用

sed是一个强大而简答的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加.移动等),最后输出所有行或者仅输出处理的某些行.sed也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于shell脚本中,用以完成各种自动化处理任务.sed的工作流程主要包括读取.执行和显示三个过程: 读取:sed从输入流(文件.管道.标准输入)中读取一行内容并存储到临时的缓冲区中(也称为模式空间). 执行:默认情况下,所有的sed命令都在模式空间中顺序地执行,除非指定了行的

Linux下文本搜索工具grep命令使用入门

grep命令入门 如果想通过使用grep命令来实现理想化的文本搜索,对正则表达式的了解是比不可少的.文献1对正则表达式语法做了一个简单的介绍,文献2提供了一个简单的入门.码农也可以自己google一下其他的参考资料.下面就grep命令的使用做个入门级的介绍. 1.1 grep命令的变种 linux下除了grep命令可以完成文本搜索外,还存在egrep,fgrep,rgrep三个命令.这三个命令都是由grep加上一些控制参数演变而来,如egrep=grep -E, fgrep=grep -F, r

文本查找工具find命令

在Linux系统上操作时,有时会忘记一个文件放在哪个目录下,这是可以用到文件查找工具去查找到相应的文件,文件查找工具有locate.find两个工具 文件查找: 1.locate:   locate命令是通过linux上构建的一个索引数据库来查询的,遍历整个数据库去搜索所匹配的文件,而且这个索索引数据库是Linux系统自己维护和更新的,索引的构建是在系统比较空闲的时候自动进行的周期性任务. 虽然数据库的更新是系统自动更新的,但也可以通过手动updatedb更新,但是更新的时候需要遍历整个根目录(

文本查找工具 find命令详解

本文旨在学习find命令常用用法 find命令语法 find [option] [查找路径] [查找条件][处理动作] 查找路径:指定具体目标路径:默认为当前目录. 查找条件:指定的查找标准,可以是文件名.大小.类型.权限等:默认会找出指                   定路径下的所有文件. 处理动作:对符合条件的文件做操作,默认输出至屏幕 find查找条件详解 根据文件名和inode查找: -name <文件名称>:支持使用glob *, ?, [], [^] -iname <文件

正则表达式及Linux三大文本处理工具

一.正则表达式 1.匹配字符的类型 [a-z]:小写字母 [A-Z]:大写字母 [a-Z]:小或大写字母 [0-9]:数字 [a-zA-Z0-9]:表示匹配一个为字母或数字的字符 . :匹配1个任意字符,空格除外 [0-f]:16进制数 abc | def:abc或def a (bc | de) f:abcf 或 adef \<:单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词 \>:单词尾 [^表达式]:除小写字母以外的所有字符,如此类推. 2.后跟以下符号控制匹配的数量 此类

文本处理工具之一grep命令详解

grep(Globel Search Regular Expression and Printing out the line)全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,是一个对行进行操作的搜索工作,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep. egrep表示扩展的grep,相比grep支持更多的元字符,"grep -E"相当于egrep.fgrep是fast grep,不支持元字符,但是搜索速度更快.

Linux命令学习:grep文本搜索工具

Mark: 本系列博文只是记录作者在Linux学习过程中的点点滴滴,新手可能参考,高手们就略过吧!!! Linux学习总结:grep文本搜索工具 功能:根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,并把匹配的行打印出来,它的全称为"Global Regular Expression Print",全局正则表达式,它默认是开放给所有用户. 语法格式:Grep [option] pattern file Option:命令选项,具体包含: -v: --revert-match

文本处理工具之二 sed命令详解

======博主所学知识来着于恩师马哥的亲授====== 马哥教育"2014夏令营"开始啦!!!马哥教育是目前性价比最高的Linux培训,国内好评度排名第一,并被网友称为Linux界的"黄埔军校",全部课程采用Centos6.5x86_64讲解,经过几期网络班的总结和锤炼,逐渐完善的课程体系,学员学习进度监督和优质的考试系统检验学员掌握程度,活跃的在线答疑环节,名师陪伴,牛人指点,精彩不容错过. 详情猛戳:http://www.magedu.com/ 课程内容:ht