Linux之文本格式化输出

文本格式化输出 一、输出格式化命令printf 格式替换符

选项 功能描述
%s 字符串
%f 浮点格式
%c ASCII字符,即显示对应参数的第一个字符
%d,%i 十进制整数
%o 八进制值
%u 不带正负号的十进制值
%x 十六进制值(a-f)
%X 十六进制值(A-F)
%% 表示%本身
常用转义字符
选项 功能描述
\b 后退
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ 表示\本身
二、简单文本格式化命令fmt fmt命令用于编排文本文件。fmt指令会从指定的文件里读取内容,将其依照指定格式重新编排后,输出到标准输出设备。若指定的文件名为"-",则fmt指令会从标准输入设备读取数据。
例如:
[root@localhost usr]# cat app.json { "pages":[ "pages/aboutme/aboutme", "pages/index/index", "pages/logs/logs" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#0ff", "navigationBarTitleText": "第一个微信小程序" } } // 重新编排文件内容 [root@localhost usr]# fmt app.json { "pages":[ "pages/logs/logs"x",outme", "window":{ "navigationBarBackgroundColor":", "navigationBarTitleText": "第一个微信小程序" } }

三、行标号命令nl nl命令在linux系统中用来计算文件中行号。nl 可以将输出的文件内容自动的加上行号。
[root@localhost usr]# nl a.txt 1 lzp 2 is a chinese man. 3 jaskson 4 is a usa man.

四、grep命令 grep [选项] [范本样式] [文件或目录…]
例子
当前目录下查找以file前缀的文件中含有lzp的行。
[root@localhost local]# ls android1etcfile2includeliblibexecsbinsrcafile binfile1gamesjdklib64mysqlsharetomcat [root@localhost local]# grep lzp file* file1:lzp file2:lzp

五、管道
多命令执行符 格式 作用
; 命令1; 命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1&&命令2 逻辑与;当命令1执行正确,则命令2才会执行;当命令2执行不正确,则命令2不会执行
|| 命令1 || 命令2 逻辑或;当命令1执行不正确,则命令2才会执行当命令2执行正确,则命令2不会执行
【Linux之文本格式化输出】例子:
同时执行多条命令
[root@localhost ~]# date; ls; cd /usr; date; ls Wed May8 07:49:28 PDT 2019 anaconda-ks.cfgDocumentsinstall.logMusicPublicVideos DesktopDownloadsinstall.log.syslogPicturesTemplates Wed May8 07:49:28 PDT 2019 binetcincludeliblibexecsbinsrc dzqcgamesjavalib64localsharetmp

如果其中一条命名发生错误,后面的命令依旧会执行。如date1命令错误,ls命令仍旧执行。
例2:同时执行ls和echo命令
[root@localhost usr]# ls && echo 'yes' binetcincludeliblibexecsbinsrc dzqcgamesjavalib64localsharetmp yes [root@localhost usr]# ls1 && echo yes bash: ls1: command not found

逻辑与表示命令ls和命令echo同时成功时同时或失败
实例3:ls和echo命令只执行其中一个。
[root@localhost usr]# ls || echo yes// 执行的ls,没有执行echo binetcincludeliblibexecsbinsrc dzqcgamesjavalib64localsharetmp [root@localhost usr]# ls1 || echo yes// 执行echo,没有执行ls1 bash: ls1: command not found yes

实例4:判断ls命令是否正确执行,如果正确执行打印success,不正确执行打印fail
[root@localhost usr]# date && echo success || echo fail Wed May8 08:18:15 PDT 2019 success [root@localhost usr]# date1 && echo success || echo fail bash: date1: command not found fail

实例5:判断命令的执行结果
[root@localhost usr]# date1 || echo no && echo yes

管道符 语法:
命令1 | 命令2
命令1的正确输出作为命令2的操作对象
实例1:命令ls显示/etc目录下的文件,并将结果重定向到abc.txt文件中。再用more显示。
[root@localhost etc]# ls -al>abc.txt [root@localhost etc]# more abc.txt

上面的功能能使用一条命令吗?
[root@localhost etc]# ls /etc | more

将netstat命令的结果发到grep ,显示包含udp的行。
[root@localhost etc]# netstat -lntup | grep udp udp00 0.0.0.0:6310.0.0.0:*1803/cupsd udp00 0.0.0.0:680.0.0.0:*2864/dhclient

将netstat命令的结果发到grep ,显示包含udp的行的数量。
[root@localhost etc]# netstat -lntup | grep udp | wc -l 2

    推荐阅读