Linux之文本格式化输出

文本格式化输出

一、输出格式化命令printf

格式替换符

选项功能描述
%s字符串
%f浮点格式
%cASCII字符,即显示对应参数的第一个字符
%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
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值