1、找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写

[root@localhost ~]# grep -E '^[sS]' /proc/meminfo
[root@localhost ~]# sed -r -n '/^[sS]/p' /proc/meminfo
[root@localhost ~]# awk '/^[sS]/{print $0}' /proc/meminfo
[root@localhost ~]# grep -iE '^s' /proc/meminfo

2、显示当前系统上的以root,centos或者user开头的信息

[root@localhost ~]# grep -rE '^(root|centos|user)' /etc/

3、找出/etc/init.d/functions文件下包含小括号的行

[root@localhost ~]# grep -E '\(|\)' /etc/init.d/functions 

[root@localhost ~]# grep -E '[()]' /etc/init.d/functions

4、输出指定目录的基名

[root@localhost /etc/sysconfig]# pwd | awk -F/ '{print $NF}'

5、找出网卡信息中包含的数字

[root@localhost /etc/sysconfig]# grep -oE '[0-9]+' /etc/sysconfig/network-scripts/ifcfg-ens3[23]

6、找出/etc/passwd下每种解析器的用户个数

{"bash": 10, "sh": 9, "zsh": 1}
数组
[root@localhost /etc/sysconfig]# awk -F: '{arr[$NF]++}END{for(i in arr){print i,arr[i]}}' /etc/passwd arr : 数组
[$NF] : 数组中的k值
++ : 数组中的V值
arr[i] : 通过K取V

7、获取网卡中的ip,用三种方式实现

[root@localhost /etc/sysconfig]# ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'

[root@localhost /etc/sysconfig]# ip a | sed -r -n '/([0-9]{1,3}\.){3}[0-9]{1,3}/p'

[root@localhost /etc/sysconfig]# ip a | awk '/([0-9]{1,3}\.){3}[0-9]{1,3}/{if(NR==3){print $2}else{print $2,$4}}'

8、搜索/etc目录下,所有的.html或.php文件中main函数出现的次数

[root@localhost ~]# grep -rE 'main' `find /etc/ -name "*.html" -o -name "*.php" | xargs ` | wc -l

grep -oE 'main' $(find /etc/ -name '*.conf') | wc -l

9、过滤掉php.ini中注释的行和空行

[root@localhost ~]# yum install php php-devel
[root@localhost ~]# grep -vE '^\ *;|^$' /etc/php.ini

10、找出文件中至少有一个空格的行

[root@localhost ~]# grep -E '\ +' /etc/php.ini

11、过滤文件中以#开头的行,后面至少有一个空格

[root@localhost ~]# grep -E '^#\ +' /etc/fstab

12、查询出/etc目录中包含多少个root

[root@localhost ~]# grep -roE 'root' /etc/ | wc -l

13、查询出所有的qq邮箱

[root@localhost ~]# grep -E '[0-9a-zA-Z-_]+@qq\.com'

14、查询系统日志中所有的error

[root@localhost ~]# grep -ioE 'error' /var/log/messages

15、删除某文件中以s开头的行的最后一个词

[root@localhost ~]# grep -Ei '^s' 11.txt | grep -oE '[0-9a-zA-Z]+' | xargs | awk '{for(i=0;i<(NF-1);i++){print $i}}'

先过滤出以s开头的行 再从行里过滤出词(字段) 将过滤得到的所有词组成一行 以空格分隔 循环打印每列内容
当打印到的列数小于总列数时 正常打印
当打印到的列数大于等于总列数时 停止打印内容
继续同样处理下一行

16、删除一个文件中的所有数字

[root@localhost ~]# sed -r 's/[0-9]//g' 11.txt

17、显示奇数行

[root@localhost ~]# awk -F: 'NR%2==1{print $0}' /etc/passwd

18、删除passwd文件中以bin开头的行到nobody开头的行

[root@localhost ~]# sed -r '/^bin/,/^nobody/d' /etc/passwd

19、从指定行开始,每隔两行显示一次空行(指定第五行开始)

[root@localhost ~]# awk -F: '{n=5;if(NR<n){print $0}else{if((NR-5)%2==0){print "---"};print $0}}' /etc/passwd

指定行号小于5时 打印所有行 当行号除以5模2余0时 打印--- 打印下一行

20、每隔5行打印一个空行

[root@localhost ~]# awk -F: '{if(NR%5==0){print " "}; print $0}' /etc/passwd3

21、不显示指定字符的行

[root@localhost ~]# grep -vE 'g' 2.txt

22、将文件中1到5行中aaa替换成AAA

[root@localhost ~]# sed -r '1,5 s/aaa/AAA/g' 13.txt

23、显示用户id为奇数的行

[root@localhost ~]# awk -F: '$3%2==1{print $0}' /etc/passwd

24、显示系统普通用户,并打印系统用户名和id

[root@localhost ~]# awk -F: '$3>=1000{print $1, $3}' /etc/passwd

25、统计nginx日志中独立用户数(ip维度计算)

[root@localhost ~]# awk '/([0-9]{1,3}\.){3}[0-9]{1,3}/{arr[$1]++}END{for(i in arr){print i}}' access.log

26、统计php.ini中每个词的个数

[root@localhost ~]# grep -oE '[0-9a-zA-Z]+' /etc/php.ini | awk '{arr[$1]++}END{for(i in arr){printf "%-15s | %-5d\n", i, arr[i]}}'

Linux三剑客综合练习的更多相关文章

  1. Linux 三剑客之 awk 实战详解教程

    我们知道 Linux 三剑客,它们分别是:grep.sed.awk.在前边已经讲过 grep 和 sed,没看过的同学可以直接点击阅读,今天要分享的是更为强大的 awk. sed 可以实现非交互式的字 ...

  2. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  3. Linux实战教学笔记18:linux三剑客之awk精讲

    Linux三剑客之awk精讲(基础与进阶) 标签(空格分隔): Linux实战教学笔记-陈思齐 快捷跳转目录: * 第1章:awk基础入门 * 1.1:awk简介 * 1.2:学完awk你可以掌握: ...

  4. Linux基础综合练习

    Linux基本操作综合练习 1.建立用户zhangsan,密码使用明文123456: 命令:useradd -p 123456 zhangsan 解释: 参数 -p 添加明文密码 useradd添加用 ...

  5. 就linux三剑客简单归纳

    就linux三剑客简单归纳: :awk 习题1:用 awk 中查看服务器连接状态并汇总 netstat -an|awk '/^tcp/{++s[$NF]}END{for(a in s)print a, ...

  6. (转)不看绝对后悔的Linux三剑客之grep实战精讲

    不看绝对后悔的Linux三剑客之grep实战精讲 原文:http://blog.51cto.com/hujiangtao/1923675 https://www.cnblogs.com/peida/a ...

  7. (转)不看绝对后悔的Linux三剑客之sed实战精讲

    不看绝对后悔的Linux三剑客之sed实战精讲 原文:http://blog.51cto.com/hujiangtao/1923718 二.Linux三剑客之sed命令精讲 1,前言 我们都知道,在L ...

  8. (转)不看绝对后悔的Linux三剑客之awk实战精讲

    原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...

  9. Linux(8):linux三剑客sed和awk & Shell 编程(1)

    linux 三剑客 之 sed # sed 是什么? # sed : 字符流编辑器 Stream Editor: sed 擅长 替换.取行等 # sed 的功能与版本: 处理纯文本文件.日志.配置文件 ...

随机推荐

  1. Codeforces 1137F - Matches Are Not a Child's Play(LCT)

    Codeforces 题面传送门 & 洛谷题面传送门 考虑将一个点 \(x\) 的编号变为当前所有点编号最大值 \(+1\) 会对每个点的删除时间产生怎么样的影响.由于编号最大的点肯定是最后一 ...

  2. expr计算字符串长度

    命令:expr length "quanzhiqinag" #!/bin/bash for N in quan zhi qiang do if [ `expr length $N ...

  3. Augustus 进行基因注释

      目前的从头预测软件大多是基于HMM(隐马尔科夫链)和贝叶斯理论,通过已有物种的注释信息对软件进行训练,从训练结果中去推断一段基因序列中可能的结构,在这方面做的最好的工具是AUGUSTUS它可以仅使 ...

  4. R语言与医学统计图形-【15】ggplot2几何对象之线图

    ggplot2绘图系统--几何对象之线图 曲线:点连线.路径曲线.时间序列曲线.模型拟合曲线...... 直线:水平直线.垂直直线.斜线. 1.曲线 对象及其参数. #路径图 geom_path(ma ...

  5. Golang使用validator进行数据校验及自定义翻译器

    Golang使用validator进行数据校验及自定义翻译器 包下载:go get github.com/go-playground/validator/v10 一.概述 在接口开发经常会遇到一个问题 ...

  6. day05文件编辑命令

    day05文件编辑命令 mv命令:移动文件 mv命令:mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中. 格式:mv [原来的文件路径] [现在的文件路径] mv命令后面既可以跟 ...

  7. PLSQL导出oracle表结构和数据

    1.导出表结构和数据 方式1.tools->export user objects是导出表结构 tools ->export user object 选择选项,导出.sql文件 说明:导出 ...

  8. Linux常用命令之文件权限管理

    Linux文件权限管理1.改变文件或目录的权限:chmod命令详解命令名称:chmod命令所在路径:/bin/chmod执行权限:所有用户语法:chmod [{ugoa}{+-=}{rwx}] [文件 ...

  9. 【编程思想】【设计模式】【基础模式Fundamental】delegation_pattern

    Python版 https://github.com/faif/python-patterns/blob/master/fundamental/delegation_pattern.py #!/usr ...

  10. 删除数据库时报错 ERROR 1010 (HY000): Error dropping database (can't rmdir './cart', errno: 39)

    这是因为在数据目录下有表相关的数据(不是表),此时应该进入存放表的目录下删除与表相关的数据,一般数据存放目录默认为/var/lib/mysql,cd到目录下 执行命令:cd /var/lib/mysq ...