补充—sed的后向引用

https://www.processon.com/view/link/5cb92f24e4b0bab9095ea765
筛选出stat /etc/hosts下的644

[✡root@oldboy /tmp]# stat /etc/hosts File: ‘/etc/hosts’Size: 158        Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 16824726    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-01 19:00:20.427999722 +0800
Modify: 2013-06-07 22:31:32.000000000 +0800
Change: 2019-03-26 13:52:54.724535531 +0800Birth: -
[✡root@oldboy /tmp]# stat /etc/hosts |sed -nr '4p'
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
[✡root@oldboy /tmp]# stat /etc/hosts|sed -n 4p|sed -r 's#(^.*\(0)([0-9]+)(/.*$)#\2#g'
\\此行命令就是用了后向引用
644

※三剑客之awk

下图是awk的执行过程

1.取行------>NR==

取第一行
[?root@oldboy /tmp]# awk 'NR==1' lidao.txt
1 2 3 4 5 6 7 8 9 10
取带有oldboy的行
[✡root@oldboy /tmp]# awk '/oldboy/' lidao.txt
I am oldboy teacher!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
oldboy oldboy oldboy

2.取列------->$1第一列 $2第二列

取lidao.txt中的第一列和第三列内容
[✡root@oldboy /tmp]# awk '{print $1,$3}' lidao.txt
I oldboy
I linux.I badminton
my is
our is
my isnot
my am
oldboy oldboy
给分隔的字符添加内容
用双引号""
[✡root@oldboy /tmp]# awk '{print $1"@@##"$3}' lidao.txt
I@@##oldboy
I@@##linux.
@@##
I@@##badminton
my@@##is{}
our@@##is
my@@##is
@@##
not@@##
my@@##am
oldboy@@##oldboy
显示oldboy.txt的第4行的第1列 第2列和第4列
[✡root@oldboy /tmp]# cat lidao.txt|awk 'NR==4'
I like badminton ball,billiard ball and chinese chess!
[✡root@oldboy /tmp]# cat lidao.txt|awk 'NR==4 {print $1,$2,$4}'
I like ball,billiard
找到这行的第一个字符 (,逗号就算一个分隔符)
[✡root@oldboy /tmp]# cat 2.txt
I am lidao,my qq is 918391635
[✡root@oldboy /tmp]# awk -F"," '{print $1}' 2.txt
I am lidao
找到这行的lidao和qq号码
[?root@oldboy /tmp]# cat 2.txt
I am lidao,my qq is 918391635
[?root@oldboy /tmp]# awk -F "[, ]" '{print $3,$7}' 2.txt
lidao 918391635
查看10.0.0.201是第几列(有空格和/)
[✡root@oldboy /tmp]# cat 1.txt 10.0.0.201  /24
[✡root@oldboy /tmp]# awk -F"[ /]+" '{print $2}' 1.txt
10.0.0.201

3.比较 > _ >= _ < _ <= _ == _ !=

找出/etc/passwd下第三列大于999的行
[✡root@oldboy /tmp]# awk -F":" '$3>999' /etc/passwd
oldboy:x :1000:1000::/home/oldboy:/bin/bash
gyj:x :1001:1010::/home/gyj:/bin/bash
显示/etc/passwd中第4列大于0 并且 第4列小于1000的行
[✡root@oldboy /tmp]# awk -F":" '$4>0 && $4<1000' /etc/passwd
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
mail: x:8:12:mail:/var/spool/mail:/sbin/nologin
games:x :12: 100:games:/usr/games:/sbin/nologin
ftp:x :14:50:FTP User:/var/ftp:/sbin/nologin
....省略
显示使用内存情况内存
[?root@oldboy /tmp]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  2.3G   17G  12% /
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.6M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda1       197M  133M   64M  68% /boot
tmpfs           199M     0  199M   0% /run/user/0
使用率大于百分之1的
[?root@oldboy /tmp]# df -h |awk '$5>1'
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  2.3G   17G  12% /
tmpfs           991M  9.6M  981M   1% /run
/dev/sda1       197M  133M   64M  68% /boot
使用率大于百分之10的
[?root@oldboy /tmp]# df -h |awk '$5+0>10'
/dev/sda3        19G  2.3G   17G  12% /
/dev/sda1       197M  133M   64M  68% /boot
[?root@oldboy /tmp]#

三剑客练习题—https://www.jianshu.com/p/952188a96a3e

未完待续…

第四周day19-三剑客之awk相关推荐

  1. shell编程系列15--文本处理三剑客之awk格式化输出printf

    shell编程系列15--文本处理三剑客之awk格式化输出printfprintf的格式说明符格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o 打印 ...

  2. shell编程系列20--文本处理三剑客之awk常用选项

    shell编程系列20--文本处理三剑客之awk常用选项awk选项总结选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号[root@localhost shel ...

  3. Linux系统Shell脚本第五章:shell数组、正则表达式及文件三剑客之AWK

    目录 一.shell数组 1.数组分类 2.定义数组方法 二.正则表达式 1.元字符 2.表示次数 3.位置锚定 4.分组 5.扩展正则表达式 三.文本三剑客之AWK 1.awk 2.使用格式 3.处 ...

  4. 文本三剑客之AWK详解

    文本三剑客之AWK awk简介 AWK是一种优良的文本处理工具.它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred A ...

  5. linux三剑客之awk命令详解

    linux三剑客之awk命令详解 awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件.数据排序.计算以及生成报表等等.awk工具主要用于格式化输出,可以用类似于处理表格的方式处理文 ...

  6. linux三个冒号加端口,不看绝对后悔的Linux三剑客之awk实战精讲

    一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel).处理的数据可以是 ...

  7. Linux三剑客之awk详解

    第一篇 awk简介与表达式实例 一种名字怪异的语言 模式扫描和处理,处理数据和生成报告. awk不仅仅是linux系统中的一个命令,而且是一种编程语言:它可以用来处理数据和生成报告(excel):处理 ...

  8. Linux文本处理三剑客(awk、grep、sed)

    目录 grep 简介 实际使用 小结 sed awk 名字由来 强大的文本处理工具 语法 域 模式&动作 结合正则 复合表达式 printf 格式化输出 内置变量 内置函数 awk脚本 gre ...

  9. Linux文本三剑客之一——awk详解(1)——awk看这两篇就够啦~PS:文末有练习,来练练手吧

    shell编程三剑客 grep --> egrep --> 文本过滤 查询 awk 文本截取 sed  文本的替换和修改 目录 awk awk也可以做小数运算 awk命令简要处理流程 aw ...

最新文章

  1. SCRUM敏捷实践—任务看板
  2. 【JSOI2008】最大数 线段树
  3. 【Netty】IO 模型简介 ( Netty 特点 | Netty 应用场景 | Java 三种 IO 模型 | BIO 模型 )
  4. 通过过滤器控制页面输出内容
  5. IIS7 + Tomcat7 整合共用80端口
  6. iscsi:IO操作流程(一)
  7. 怎么样测试需要登录的接口?需要登录的接口怎么测试性能?
  8. 课程 3: Content Providers 简介
  9. 全国分省企业CEO任期、CEO学历数据(5W+)
  10. 利用BP神经网络 设计一个三层神经网络解决手写数字的识别问题
  11. 12个国外免费DNS服务
  12. 银联卡跨行业务地区代码标准JSON版
  13. React路由ReactRouter6
  14. c语言 模拟memcmp
  15. Data truncation: Data too long for column ‘xxx‘ at row xxx问题详解
  16. 1021. Couples
  17. 系统管理类命令(一)
  18. Python基础教程:拼接字符串的7种方法
  19. MySQL5.7.18安装卡在了starting server
  20. 写C#代码时用到的中文简体字 、繁体字 对应的转化 (收藏吧)

热门文章

  1. iOS7 tabbar遮盖tableview的cell解决方法
  2. 【尚硅谷】Vue.js从入门到精通笔记
  3. 【Java基础】· Java基本语法:程序流程控制习题总结
  4. 快速搭建多用户共享桌面云环境 云教室环境搭建
  5. Mysql 解决1251 client does not support ...问题
  6. 大疆云台如何使用华为mate20pro_mate20pro 进阶功能吐槽和分析
  7. 基于CNN卷积神经网络的商品识别(毕设)
  8. 金蝶外贸进出口行业解决方案(K/3 Cloud、EAS版)
  9. ちょっとした難しい言葉まとめ③
  10. java都市男人心痒痒_男人最想听的情话不是我爱你那是什么 说的男人心痒痒的情话大全...