linux-7 awk

news/2025/1/9 13:38:08/

目录

1.awk默认规则

2.处理方式

3.格式

4.运算

5.getline

6. 文件内容匹配过滤打印

7.begin . end模式

8.awk条件判断打印

9.awk三元表达

10.awk精准筛选

11.awk数组


1.awk默认规则

        当以多空格为分隔符时 自动压缩成一个

        默认操作就是打印

        默认分隔符时空格

2.处理方式

        先对行处理 再分列

3.格式

        -F " "  指定分隔符       -v 变量赋值

                内置变量

                        $0 全部打印     $n 第几列     NR 行号    NF 当前处理行字段数    $NF 最后一个字段

                        FS 列分隔符

                awk '{print $n}' 文件名                            打印第几列

                awk 'NR==行号 {print}'    文件名            打印第几行

                awk 'NR==1;NR==3{print}'   文件名       打印1-3行

                awk 'NR==1,NR==3{print}'   文件名       打印1和3行

4.运算

        awk 'BEGIN{print 10+10}'      20

5.getline

        awk内置函数

        当getline 左右无重定向符号(<>)或管道符(|) 打印奇偶行

                awk '{print $0;getline}'  文件名               打印奇数行

                awk '{getline;print $0}'  文件名               打印偶数行

                awk '{getline < "文件1";print $0 > "文件2";}'  文件1

                        从文件1全量传内容给文件2

                用 | 赋值变量

6. 文件内容匹配过滤打印

        awk '/^…/{print}'   以…开头

        awk '/…$/{print}'  以…结尾

7.begin . end模式

        awk 'BEGIN{};{};END{}'

8.awk条件判断打印

        awk -F: '$3>500{print $0}' /etc/passwd      打印/etc/passwd第三列大于500

        awk -F: '{if($3>10){print $0}}' /etc/passwd     打印/etc/passwd第三列大于10

9.awk三元表达

        awk -F: '{max=($3>=$4)?$3:$4;{print $0}}' /etc/passwd

10.awk精准筛选

        $n(>< ==) 用于对比数据

        $n~"字符串" 代表第n个字段包含某个字符串

        $n!~"字符串" 取反

        $n==" " 第n个字段为某个字符串

        $n!=" " 取反

        $NF 最后一个字段

11.awk数组

        awk 'BEGIN{a[0]=1;a[1]=2;a[2]=3;print a[1]}'     2

        awk 'BEGIN{a[0]=1;a[1]=2;a[2]=3;for(i in a)print i, a[i]}'     0    1

                                                                                                  1     2

                                                                                                  2     3

        索引下标去重

                awk '{a[$1]++};END{for(i in a){print i,a[i]}}' test.txt 

        

 

 


http://www.ppmy.cn/news/482354.html

相关文章

不同业务场景、不同数据类型,对应亚马逊云科技不同数据库服务

小小的改变&#xff0c;标志一个新时代的全面开启&#xff0c;一个数据库的云原生时代。前不久&#xff0c;Gartner公布了一组数据&#xff0c;引起了不小的讨论度。在2022年全球数据库管理系统的市场份额排名中&#xff0c;作为纯云厂商的亚马逊云科技&#xff0c;超越了老牌传…

SpringBoot 如何使用 IOC 容器

SpringBoot 如何使用 IOC 容器 Spring 是一个非常流行的 Java 开发框架&#xff0c;它提供了一个强大的 IoC&#xff08;Inversion of Control&#xff09;容器来管理 Java 对象之间的依赖关系。在 SpringBoot 中&#xff0c;我们可以非常方便地使用这个 IoC 容器来管理我们的…

如何绘制甘特图?这个软件来帮你

最好用的甘特图软件是什么&#xff1f;先看效果&#xff0c;再放教程&#xff1a; 这是大家用的比较多的excel做出的甘特图&#xff1a; 这是我做的动态甘特图&#xff1a; 两种方法&#xff0c;分享给大家&#xff0c;按需选择即可。 第一种&#xff1a;用Excel制作甘特图 用…

【玩转Docker小鲸鱼叭】虚拟化技术简介

什么是虚拟化技术&#xff1f; Docker 是一款基于容器虚拟化技术构建的软件&#xff0c;那到底什么虚拟化技术呢&#xff1f;在学习 Docker 之前&#xff0c;先简单了解下虚拟化技术。 虚拟化是云原生的实现基础&#xff0c;它能够帮助我们更加有效地利用物理计算机硬件。 虚…

Oracle自动化巡检脚本出炉

巡检脚本如下&#xff1a; [oracleoracle-db-19c check]$ ls -ltr total 24 -rw-r--r--. 1 oracle oinstall 22753 Jan 5 16:12 ORAcheck.sql [oracleoracle-db-19c check]$ cat ORAcheck.sql set heading off select 一、数据库的基本情况 from dual;set heading off select…

[资源数据]汉字含拼音注音笔画数(续)

[LzmTW(水如烟) 20080101]汉字 <!--LzmTW(水如烟) 20080101汉字--><row Char"珢" Unicode"29666" Zhuyins"kn ken yn yin" Pinyins"KEN4 KEN5 YIN2 YIN5" Stroke"10" /><row Char"珣" Unicode&qu…

ARM程序由于字节对齐引起的问题深入分析

首先说说&#xff0c;什么叫对齐。如果一个数据是从偶地址开始的连续存储&#xff0c;那么它就是半字对齐&#xff0c;否则就是非半字对齐&#xff1b;半字对齐的特征是bit00,其他位为任意值。字对齐的特征是bit10,bit01,其他位为任意值。如果一个数据是以能被4 整除的地址开始…

js生成验证码并验证的登录页面

<!Doctype html> <html><head><meta charset"utf-8"/><title>验证码 </title><style type"text/css">*{margin:0;padding:0;} a{text-decoration: none;}.main_bar{width:100%;height: 350px;margin-top:200px;…