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
android1  etc    file2  include  lib    libexec  sbin   src  afile
bin       file1  games  jdk      lib64  mysql    share  tomcat
[root@localhost local]# grep lzp file*
file1:lzp
file2:lzp

五、管道

多命令执行符 格式 作用
; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1&&命令2 逻辑与;当命令1执行正确,则命令2才会执行;当命令2执行不正确,则命令2不会执行
|| 命令1 || 命令2 逻辑或;当命令1执行不正确,则命令2才会执行当命令2执行正确,则命令2不会执行

例子:
同时执行多条命令

[root@localhost ~]# date;ls;cd /usr;date;ls
Wed May  8 07:49:28 PDT 2019
anaconda-ks.cfg  Documents  install.log         Music     Public     Videos
Desktop          Downloads  install.log.syslog  Pictures  Templates
Wed May  8 07:49:28 PDT 2019
bin   etc    include  lib    libexec  sbin   src
dzqc  games  java     lib64  local    share  tmp

如果其中一条命名发生错误,后面的命令依旧会执行。如date1命令错误,ls命令仍旧执行。

例2:同时执行ls和echo命令

[root@localhost usr]# ls && echo 'yes'
bin   etc    include  lib    libexec  sbin   src
dzqc  games  java     lib64  local    share  tmp
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
bin   etc    include  lib    libexec  sbin   src
dzqc  games  java     lib64  local    share  tmp
[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 May  8 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
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               1803/cupsd          
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               2864/dhclient   

将netstat命令的结果发到grep ,显示包含udp的行的数量。

[root@localhost etc]# netstat -lntup | grep udp | wc -l
2

你可能感兴趣的:(Linux)