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

news2025/3/6 11:17:50

一、格式符 

%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,awk

hello,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.coloradmin.cn/o/1329121.html

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

相关文章

【c】无限制输入字符

我们做题有时候会碰上这种的输入,一直输入字符, 下面附上两种解决办法 方法1: char s[10000]; int i0; int arr[1000]{0}; while(scanf("%c",&s[i])!EOF) { i; } 这样你就可以一直输入&#xff0…

重温经典struts1之自定义类型转换器及注册的两种方式(Servlet,PlugIn)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 Struts的ActionServlet接收用户在浏览器发送的请求,并将用户输入的数据,按照FormBean中定义的数据类型,赋值给FormBean中每个变量&a…

多任务数据采集

进程:操作系统中资源分配的基本单位 线程:使用进程资源处理具体任务 一个进程中可以有多个线程:进程相当于一个公司,线程是公司里面的员工。 一 多线程 多线程都是关于功能的并发执行。而异步编程是关于函数之间的非阻塞执行&…

python中整数和浮点数的运算

任意两个数相除时,结果总是浮点数,即便这两个数能够整除。例如: 在任何运算中,只要有操作数是浮点数,结果总是浮点数。例如:

【计算机系统结构实验】实验3 Cache性能分析

3.1 实验目的 加深对Cache的基本概念及其工作原理的理解; 掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处; 理解常见替换算法(LRU与随机法)的基本思想以及它们对Cache性能的影响。 3.2 实验平台 实验平台…

论文解读:Informer-AAAI2021年最佳论文

论文背景 应用背景 训练的是历史数据,但预测的是未来的数据,但是历史数据和未来数据的分布不一定是一样的,所以时间序列应用于股票预测往往不太稳定 动作预测: 基于之前的视频中每一帧动作,预测下一帧这个人要做什么…

Yolov5水果分类识别+pyqt交互式界面

Yolov5 Fruits Detector Yolov5 是一种先进的目标检测算法,可以应用于水果分类识别任务。结合 PyQT 框架,可以创建一个交互式界面,使用户能够方便地上传图片并获取水果分类结果。以下将详细阐述 Yolov5 水果分类识别和 PyQT 交互式界面的实现…

PHP数组定义和输出

数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。 PHP中的数组与Java的数组不一样,需要有key(键)和value(值),相当于Java中数组和键值对的结合。 数组的定义 …

12.21_黑马数据结构与算法笔记Java

//最近在复习,,java的进度会比较慢一些 目录 219 排序算法 基数排序2 220 排序算法 java排序 221 排序 e01 根据另一个数组次序排序 222 排序 e02 根据出现频率排序 thinking:关于比较器 223 排序 e03 最大间距 解法1(超出内…

千帆 AppBuilder 初体验,不仅解决解决了我筛选简历的痛苦,更是让提效10倍!

文章目录 🌟 前言🌟 什么是百度智能云千帆 AppBuilder🌟 百度智能云千帆 AppBuilder 初体验🌟 利用千帆AppBuilder搭建简历小助手🌟 让人眼前一亮的神兵利器 - 超级助理 🌟 前言 前两天朋友 三掌柜 去北京…

【Linux进阶之路】线程

文章目录 一、初始线程1.概念2.执行3.调度4.切换 二、线程控制1.创建2.等待3.分离4.退出5.取消 三、线程安全1.互斥1.1初始1.2理解1.3锁1.3.1概念1.3.2原理1.3.4死锁 2.同步2.1概念2.2原理 3.生产消费者模型 总结尾序 一、初始线程 1.概念 简单的概念: 线程就是一…

NPOI 导出Excel提示内容有问题的解决方法

NPOI导出Excel 使用Microsoft Excel 打开提示内容有问题,如下: 原因是:在使用NPOI导出excel时,获得 workbook.Write(ms)生成的 MemoryStream后,使用了 ms.GetBuffer()返回文件内容,导致生成的 Excel文件结尾…

关于频谱仪是如何来实现辐射功率测量

1.1 内部基本原理框架 首先是接收到外部信号输入,然后经过可变衰减器衰减,接着进行变频,接着经过带宽带通滤波器进行滤波,滤波后的信号送入检波器进行信号检测,再经对数放大器放大后,送入低通滤波器进行视频…

【网络技术】BGP 基础与概述

该笔记主要作用与 BGP 路由协议的基础和概述讲解,其萌芽作用 参考视频:红茶三杯 关键词阐述:AS 独立自治网络系统机构 前置知识 在我们学习 BGP 路由之前所学习的所有动态路由策略,都同属一个路由类中:IGP BGP 路由协…

位运算:Leetcode137.只出现一次的数字(2)

题目描述: 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 示例 1: 输入:nums [2,2,3,2] 输出:3示例 2: 输入&…

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

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

数据结构---算法的空间复杂度

文章目录 空间复杂度概念实例 空间复杂度 概念 空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。…

超级逼真人脸生成,Stable Diffusion的3个关键技巧

大家好,你是否曾想过,为什么别人可以使用AI图像生成技术生成如此逼真的人脸,而自己的尝试却充满了错误和瑕疵,让人一眼看出是假的。尝试过调整提示和设置,但似乎仍无法与他人的质量相匹配。 本文将带大家了解使用Stab…

提示“由于找不到mfc140u.dll,无法继续执行代码”如何解决?

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是找不到某个动态链接库文件,比如mfc140u.dll。这个问题可能会导致某些应用程序无法正常运行或打开。 一、关于找不到mfc140u.dll文件造成会的问题 mfc140u.dll是Visual C中的一个…

【华为鸿蒙系统学习】- HarmonyOS4.0之App项目开发|自学篇

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 创建鸿蒙第一个App项目 项目创建 工程目录区 预览区 运行Hello World 基本工程目录 ws:工…