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.mzph.cn/news/239102.shtml

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

相关文章

10分钟创建AIGC应用,腾讯云推出高性能应用服务HAI

降低AIGC应用开发门槛,才能更快发现下一个AIGC现象级应用。 12月18日,腾讯云宣布推出高性能应用服务(Hyper Application Inventor,HAI),用户无需复杂配置,最快10分钟即可创建自己的AI应用。 HAI能够提供即插即用的算…

Vue 的两种实现:VSCode 中配置 vue 模板快捷方式的过程

1、创建配置文件: 其一、打开 VSCode ,CtrlShiftP, 打开搜索框: 其二、输入:user, 并点击进去 Snippets:Configure User Snippets 其三、输入 vue3js 并回车: 其四、打开项目,发现配置文件 vue3js.code-sn…

Layui 下拉select多选实现

1. html <div id"mo_deptment"></div> 2.引用 <script src"~/layuiadmin/layui/xm-select.js"></script>3.设置全局变量存储控件 var mo_deptmentSelect; 4.layui.use 中初始化 4.1 列表数据 var mo_deptmentdata [ …

红队打靶练习:DIGITALWORLD.LOCAL: DEVELOPMENT

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.12.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.12.1 00:50:56:c0:00:08 …

数字图像处理-空间域图像增强-爆肝18小时用通俗语言进行超详细的总结

目录 灰度变换 直方图&#xff08;Histogram&#xff09; 直方图均衡 直方图匹配&#xff08;规定化&#xff09; 空间滤波 低通滤波器 高通滤波器 ​​​​​​​ 本文章讲解数字图像处理空间域图像增强&#xff0c;大部分内容来源于课堂笔记中 灰度变换 图像增强&…

使用Python将OSS文件免费下载到本地:第一步 列举OSS文件

大家好,我是水滴~~ 本文将介绍了使用的知识点、以及列举OSS文件的代码、并对该代码进行详细解析、最后给出部署方案,希望能对你有所帮助! 《Python入门核心技术》专栏总目录・点这里 系列文章 使用Python将OSS文件免费下载到本地:项目分析和准备工作使用Python将OSS文件免…

【网络安全】学习Web安全必须知道的一本书

【文末送书】今天推荐一本网络安全领域优质书籍。 目录 正文实战案例1&#xff1a;使用Docker搭建LAMP环境实战案例2&#xff1a;使用Docker搭建LAMP环境文末送书 正文 学习Web安全离不开Web&#xff0c;那么&#xff0c;需要先来学习网站的搭建。搭建网站是每一个Web安全学习…

为什么SSL证书是必备之物?

SSL证书的首要任务是保障用户和网站之间的数据传输安全。未加密的数据传输容易受到中间人攻击&#xff0c;使敏感信息暴露于风险之中。SSL通过加密数据&#xff0c;有效地抵御了这些潜在的威胁&#xff0c;确保用户的隐私得到充分保护。 采用SSL证书的网站在浏览器地址栏中通常…

如何进行USB丢弃攻击?

USB丢弃攻击&#xff0c;类似于一场表演艺术&#xff0c;您需要构建一个引人入胜的故事&#xff0c;激发目标的好奇心&#xff0c;让他们忽略基本的安全意识&#xff0c;插入您精心准备的USB设备! 本文章仅限娱乐&#xff0c;请勿模仿或进行违法活动&#xff01; 一、选择放置…

Java版企业电子招投标系统源代码,支持二次开发,采用Spring cloud微服务架构

招投标管理系统是一个集门户管理、立项管理、采购项目管理、采购公告管理、考核管理、报表管理、评审管理、企业管理、采购管理和系统管理于一体的综合性应用平台。它适用于招标代理、政府采购、企业采购和工程交易等业务的企业&#xff0c;旨在提高项目管理的效率和质量。该系…

Http---HTTP响应报文

1. HTTP响应报文分析 HTTP 响应报文效果图: 响应报文说明: --- 响应行/状态行 --- HTTP/1.1 200 OK # HTTP协议版本 状态码 状态描述 --- 响应头 --- Server: Tengine # 服务器名称 Content-Type: text/html; charsetUTF-8 # 内容类型 Transfer-Encoding: chunked # 发送给客…

【Qt之Quick模块】5. QML基本类型及示例用法

QML格式 QML基本类型 在 QML 中&#xff0c;有以下基本类型&#xff1a; int&#xff1a;整数类型。 Rectangle {function myFunction() {// 输出 debug 信息console.log("11 " (11));}Component.onCompleted: {myFunction();} }结果&#xff1a; 2. real&…

FreeRTOS之队列集操作(实践)

多个任务在在同一队列中传递的同一种数据类型&#xff0c;而队列集能够在任务之间传递不同的数据类型。 配置流程&#xff1a;&#xff08;更详细流程参考正点原子的教程&#xff09; 1、启用队列集将configUSE_QUEUE_SETA置1&#xff09; 2、创建队列集 3、创建队列或信号…

SpringBoot对接支付宝完成扫码支付

文章目录 1、支付方式选择2、交互流程3、对接准备1&#xff09;加密解密 签名验签2&#xff09;沙箱环境3&#xff09;内网穿透 4、二维码5、下单6、异步通知回调7、查询支付结果8、退款9、通用版SDK 需求&#xff1a;系统A对接支付宝&#xff0c;实现支持用户扫码支付 1、支…

成为一名FPGA工程师:面试题与经验分享

在现代科技领域&#xff0c;随着数字电子技术的迅猛发展&#xff0c;FPGA&#xff08;可编程逻辑器件&#xff09;工程师成为了备受瞩目的职业之一。FPGA工程师不仅需要掌握硬件设计的基本原理&#xff0c;还需要具备良好的编程能力和解决问题的实践经验。面对如此竞争激烈的行…

语音识别之百度语音试用和OpenAiGPT开源Whisper使用

0.前言: 本文作者亲自使用了百度云语音识别,腾讯云,java的SpeechRecognition语言识别包 和OpenAI近期免费开源的语言识别Whisper(真香警告)介绍了常见的语言识别实现原理 1.NLP 自然语言处理(人类语言处理) 你好不同人说出来是不同的信号表示 单位k 16k16000个数字表示 1秒160…

C语言中关于操作符的理解

本篇文章只会列出大家在生活中经常使用的操作符 算术操作符 在算数操作符中常用的有&#xff0c;&#xff0c;-&#xff0c;*&#xff0c;/&#xff0c;% &#xff0c;我们重点讲一讲 / (除) 和 % (模) " / "运算 #include <stdio.h>int main() {int a5/2;fl…

探讨APP自动化测试工具的重要性

随着移动应用市场的蓬勃发展&#xff0c;企业对于保证其移动应用质量和用户体验的需求日益迫切。在这一背景下&#xff0c;APP自动化测试工具正变得越来越重要&#xff0c;成为企业成功的关键组成部分。本文将探讨APP自动化测试工具对企业的重要性&#xff0c;并为您解析其在提…

Spring中你一定要知道的@PostConstruct/@PreDestroy

文章目录 功能源码解析执行 功能 Spring中存在很多回调&#xff0c;但是执行他们的时机都不相同&#xff0c;也许大家用的最多的是InitializingBean.afterPropertiesSet&#xff0c;这个方法的作用如名称一样&#xff0c;是bean初始化后执行的一个回调操作&#xff0c;而PostC…

nodejs+vue+ElementUi家政服务系统c90g5

项目中登录模块用到token家政服务平台有管理员&#xff0c;雇主&#xff0c;雇员三个角色。管理员功能有个人中心&#xff0c;雇主管理&#xff0c;雇员管理&#xff0c;资料认证管理&#xff0c;项目类型管理&#xff0c;服务项目管理&#xff0c;需求信息管理&#xff0c;服务…