Shell三剑客:awk(格式化输出)

一、格式符 

%d 

十进制有符号整数

%u 

十进制无符号整数

%f 

浮点数

%s 

字符串

%c 

单个字符

%p 

指针的值

%e 

指数形式的浮点数

%x 

%X 无符号以十六进制表示的整数

%o 

无符号以八进制表示的整数

%g 

自动选择合适的表示法

%

显示%自身

#

[.#] 

第一个数字控制显示的宽度;第二个#表示小数点后精度,%3.1f

左对齐(默认右对齐);%-15s,就是以左对齐方式显示15个字符长度

显示数值的正负符号 %+d

二、区别

  •         printf 时默认是不会换行的
  •         print 函数默认会在每行后面加上 \n 换行符 

        print函数:

[root@localhost ~]# awk '{print "hello,awk"}'hello,awkhello,awk
;
hello,awk
^C
[root@localhost ~]# awk -F: '{print}' passwd.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin10
[root@localhost ~]# awk -F: '{print "root"}' passwd.txt 
root
root
root
root
root
root
root
root
root
root
[root@localhost ~]# awk -F: '{print $1}' passwd.txt 
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
[root@localhost ~]# awk -F: '{print $0}' passwd.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin10
[root@localhost ~]# awk -F: '{print $1"\t"$3}' passwd.txt 
root    0
bin     1
daemon  2
adm     3
lp      4
sync    5
shutdown        6
halt    7
mail    8
operator        11
[root@localhost ~]# data | awk '{print "Month: "$2"\nYear:"$NF}'
-bash: data: 未找到命令
[root@localhost ~]# date | awk '{print "Month: "$2"\nYear:"$NF}'
Month: 12月
Year:CST
[root@localhost ~]# awk -F: '{print "username is: " $1 "\t uid is: " $3}' passwd.txt 
username is: root        uid is: 0
username is: bin         uid is: 1
username is: daemon      uid is: 2
username is: adm         uid is: 3
username is: lp  uid is: 4
username is: sync        uid is: 5
username is: shutdown    uid is: 6
username is: halt        uid is: 7
username is: mail        uid is: 8
username is: operator    uid is: 11
[root@localhost ~]# awk -F: '{print "\tusername and uid: " $1,$3 "!"}'username and uid:  !username and uid:  !username and uid:  !username and uid:  !
^C
[root@localhost ~]# tail -3 passwd.txt | awk '{print $1,$3}'
halt:x:7:0:halt:/sbin:/sbin/halt 
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 
operator:x:11:0:operator:/root:/sbin/nologin10 

 

 

 

        printf函数:

[root@localhost ~]# awk -F: '{printf "%-15s %-10s %-15s\n", $1,$2,$3}' passwd.txt 
root            x          0              
bin             x          1              
daemon          x          2              
adm             x          3              
lp              x          4              
sync            x          5              
shutdown        x          6              
halt            x          7              
mail            x          8              
operator        x          11             
[root@localhost ~]# awk -F: '{printf "|%-15s| |%-10s| |%-15s|\n", $1,$2,$3}' passwd.txt 
|root           | |x         | |0              |
|bin            | |x         | |1              |
|daemon         | |x         | |2              |
|adm            | |x         | |3              |
|lp             | |x         | |4              |
|sync           | |x         | |5              |
|shutdown       | |x         | |6              |
|halt           | |x         | |7              |
|mail           | |x         | |8              |
|operator       | |x         | |11             |
[root@localhost ~]# awk -F: '{printf "%s\n",$1}' passwd.txt 
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
[root@localhost ~]# awk -F: '{printf "%-20s %10d\n", $1,$3}' passwd.txt 
root                          0
bin                           1
daemon                        2
adm                           3
lp                            4
sync                          5
shutdown                      6
halt                          7
mail                          8
operator                     11
[root@localhost ~]# awk -F: '{printf "username: %s\n", $1}' passwd.txt 
username: root
username: bin
username: daemon
username: adm
username: lp
username: sync
username: shutdown
username: halt
username: mail
username: operator
[root@localhost ~]# awk -F: '{printf "username: %s,UID: %d\n", $1,$3}' passwd.txt 
username: root,UID: 0
username: bin,UID: 1
username: daemon,UID: 2
username: adm,UID: 3
username: lp,UID: 4
username: sync,UID: 5
username: shutdown,UID: 6
username: halt,UID: 7
username: mail,UID: 8
username: operator,UID: 11
[root@localhost ~]# awk -F: '{printf "username: %15s,UID: %d\n", $1,$3}' passwd.txt 
username:            root,UID: 0
username:             bin,UID: 1
username:          daemon,UID: 2
username:             adm,UID: 3
username:              lp,UID: 4
username:            sync,UID: 5
username:        shutdown,UID: 6
username:            halt,UID: 7
username:            mail,UID: 8
username:        operator,UID: 11
[root@localhost ~]# awk -F: '{printf "username: %-15s,UID: %d\n", $1,$3}' passwd.txt 
username: root           ,UID: 0
username: bin            ,UID: 1
username: daemon         ,UID: 2
username: adm            ,UID: 3
username: lp             ,UID: 4
username: sync           ,UID: 5
username: shutdown       ,UID: 6
username: halt           ,UID: 7
username: mail           ,UID: 8
username: operator       ,UID: 11
[root@localhost ~]# lsmod | awk -v FS=" " 'BEGIN{printf "%s %26s %10s\n","Mo
dule","Size","Used by"}{printf "%-20s %13d %5s %s\n",$1,$2,$3,$4}' /proc/modules
Module                       Size    Used by
ip6t_rpfilter                12595     1 -
ip6t_REJECT                  12625     2 -
nf_reject_ipv6               13717     1 ip6t_REJECT,
ipt_REJECT                   12541     2 -
nf_reject_ipv4               13373     1 ipt_REJECT,
xt_conntrack                 12760    11 -
ebtable_nat                  12807     1 -
ebtable_broute               12731     1 -
bridge                      151336     1 ebtable_broute,
stp                          12976     1 bridge,
llc                          14552     2 bridge,stp,
ip6table_nat                 12864     1 -
nf_conntrack_ipv6            18935     7 -
nf_defrag_ipv6               35104     1 nf_conntrack_ipv6,
nf_nat_ipv6                  14131     1 ip6table_nat,
ip6table_mangle              12700     1 -
ip6table_security            12710     1 -
ip6table_raw                 12683     1 -
iptable_nat                  12875     1 -
nf_conntrack_ipv4            15053     6 -
nf_defrag_ipv4               12729     1 nf_conntrack_ipv4,
nf_nat_ipv4                  14115     1 iptable_nat,
nf_nat                       26583     2 nf_nat_ipv6,nf_nat_ipv4,
iptable_mangle               12695     1 -
iptable_security             12705     1 -
iptable_raw                  12678     1 -
nf_conntrack                139264     6 xt_conntrack,nf_conntrack_ipv6,nf_nat_ipv6,nf_conntrack_ipv4,nf_nat_ipv4,nf_nat,
ip_set                       45799     0 -
nfnetlink                    14519     1 ip_set,
ebtable_filter               12827     1 -
ebtables                     35009     3 ebtable_nat,ebtable_broute,ebtable_filter,
ip6table_filter              12815     1 -
ip6_tables                   26912     5 ip6table_nat,ip6table_mangle,ip6table_security,ip6table_raw,ip6table_filter,
iptable_filter               12810     1 -
vmw_vsock_vmci_transport         30577     1 -
vsock                        36367     2 vmw_vsock_vmci_transport,
iosf_mbi                     15582     0 -
crc32_pclmul                 13133     0 -
ppdev                        17671     0 -
ghash_clmulni_intel          13273     0 -
btusb                        41520     0 -
btrtl                        12945     1 btusb,
btbcm                        14040     1 btusb,
btintel                      15709     1 btusb,
aesni_intel                 189456     0 -
lrw                          13286     1 aesni_intel,
gf128mul                     15139     1 lrw,
bluetooth                   548688     5 btusb,btrtl,btbcm,btintel,
vmw_balloon                  18094     0 -
glue_helper                  13990     1 aesni_intel,
ablk_helper                  13597     1 aesni_intel,
cryptd                       21190     3 ghash_clmulni_intel,aesni_intel,ablk_helper,
pcspkr                       12718     0 -
joydev                       17389     0 -
sg                           40719     0 -
rfkill                       22391     1 bluetooth,
vmw_vmci                     67168     1 vmw_vsock_vmci_transport,
i2c_piix4                    22401     0 -
parport_pc                   28205     0 -
parport                      46395     2 ppdev,parport_pc,
ip_tables                    27126     5 iptable_nat,iptable_mangle,iptable_security,iptable_raw,iptable_filter,
xfs                         997727     2 -
libcrc32c                    12644     3 nf_nat,nf_conntrack,xfs,
sr_mod                       22416     0 -
cdrom                        42600     1 sr_mod,
ata_generic                  12923     0 -
pata_acpi                    13053     0 -
vmwgfx                      291993     1 -
sd_mod                       46281     3 -
crc_t10dif                   12912     1 sd_mod,
crct10dif_generic            12647     0 -
drm_kms_helper              186531     1 vmwgfx,
syscopyarea                  12529     1 drm_kms_helper,
sysfillrect                  12701     1 drm_kms_helper,
sysimgblt                    12640     1 drm_kms_helper,
fb_sys_fops                  12703     1 drm_kms_helper,
ttm                          96673     1 vmwgfx,
crct10dif_pclmul             14307     1 -
crct10dif_common             12595     3 crc_t10dif,crct10dif_generic,crct10dif_pclmul,
crc32c_intel                 22094     1 -
drm                         456166     4 vmwgfx,drm_kms_helper,ttm,
ata_piix                     35052     0 -
mptspi                       22673     2 -
e1000                       137624     0 -
nfit                         55639     0 -
libata                      243094     3 ata_generic,pata_acpi,ata_piix,
scsi_transport_spi           30732     1 mptspi,
serio_raw                    13434     0 -
mptscsih                     40150     1 mptspi,
libnvdimm                   159524     1 nfit,
mptbase                     106036     2 mptspi,mptscsih,
drm_panel_orientation_quirks         17180     1 drm,
dm_mirror                    22289     0 -
dm_region_hash               20813     1 dm_mirror,
dm_log                       18411     2 dm_mirror,dm_region_hash,
dm_mod                      124501     8 dm_mirror,dm_log,
fuse                        100350     1 -

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/293450.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python脚本传参

sys.argvargparse 第一种:argparse 简单使用: import argparse # 创建一个参数解析实例 parser argparse.ArgumentParser(descriptionParameters) # 添加参数解析 parser.add_argument(--training_epoch, typeint, default3000) parser.add_argument(…

使用Python计算二维截面的惯性矩和面积,中间带洞的截面也可计算,代码

因为最近到土木行业了,所以要计算二维截面的惯性矩和面积,用迈达斯太low了,所以想自己写python代码计算。前言 主要思路是三角网划分,然后计算每个小三角的惯性矩和面积,求和得到最终截面的惯性矩和面积。 python中可…

Ubuntu 常用命令之 chown 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 chown 命令在 Ubuntu 系统中用于改变文件或目录的所有者和组。这个命令的基本格式是 chown [选项]... [所有者][:[组]] 文件...。 chown 命令的主要参数有 -c 或 --changes:类似 verbose,但只在发生改变时…

解决xcode 运行不老iPhone 15 iOS 17.1 设备的问题

问题 最近要查看一下ios 17.1的设备的性能,但是当前版本的Xcode运行不了 解决方法 1、更新Xcode版本到15.1以上 2、更新完成后,大概率出现这个情况 原因:在app Store中更新到Xcode15后,运行不了模拟器和真机.需要下载iOS 17对应的模拟器.&…

Linux基本内容学习

Linux 命令 文件命令 命令释义语法格式lslist,用于显示目录中文件及其属性信息ls [参数名] [文件名]cdchange directory,用于更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前…

前端案例—antdDesign的Select多选框组件加上全选功能

前端案例—antdDesign的Select多选框组件加上全选功能。 实现效果如下: Select 组件里有这个属性,可以利用这个对下拉菜单进行自定义。 const handleChange (e, value) > {setSelectState(e.target.checked)let arr productOptions?productOption…

HarmonyOS应用事件打点开发指导

简介 传统的日志系统里汇聚了整个设备上所有程序运行的过程流水日志,难以识别其中的关键信息。因此,应用开发者需要一种数据打点机制,用来评估如访问数、日活、用户操作习惯以及影响用户使用的关键因素等关键信息。 HiAppEvent 是在系统层面…

【JavaWeb学习笔记】14 - 三大组件其二 Listener Filter

API文档JAVA_EE_api_中英文对照版 Listener 一、监听器Listener 1. Listener监听器它是JavaWeb的三大组件之一。 JavaWeb的三大组件分别是: Servlet程序、Listener监听器、Filter过滤器 2. Listener是JavaEE的规范,就是接口 3.监听器的作用是,监听某…

稳定币分析的 3 个关键指标

作者:lesleyfootprint.network 数据源:The Stablecoin Dashboard 稳定币因其固有特性而在加密货币领域中独树一帜,它们的特点是价格与特定的参考资产(通常是美元或欧元等法定货币)锚定。这种锚定机制的目的是缓解数字…

Pytorch常用的函数(五)np.meshgrid()和torch.meshgrid()函数解析

Pytorch常用的函数(五)np.meshgrid()和torch.meshgrid()函数解析 我们知道torch.meshgrid()函数的功能是生成网格,可以用于生成坐标; 在numpy中也有一样的函数np.meshgrid(),但是用法不太一样,我们直接上代码进行解释。 1、两者…

nuxt3快速上手

1.安装&#xff1a; npx nuxi init project-name # project-name 是项目名,如果下载不下来请挂梯子。2.安装依赖&#xff1a; npm install3.运行项目&#xff1a; npm run dev4.代码解释&#xff1a; <template><!-- app.vue 是所有页面的入口&#xff1a; --&g…

力扣题目学习笔记(OC + Swift)19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 此题目为链表题&#xff0c;拿出我们的杀手锏&#xff0c;链表解题经典三把斧&#xff1a; 哑巴节点栈快慢指针 关于内存问题&#xff1a;由于Swift及…