Linux基础第六课——grep|awk|sort|uniq
2023-09-11 14:21:24 时间
管道符 |
前面的输出作为后面的输入
grep 可以理解为正则表达式
grep [参数] 文件名
-c 打印符合要求的行数
-v 打印不符合要求的行
-n 在输出符合要求的行的同时连同行号一起输出
-i 忽略大小写
[0-9]
^
grep -c 'root' /etc/passwd
grep -nv 'root' /etc/passwd
grep '[0-9]' 文件名
grep '^#' -v test.py
yhq@yhq-virtual-machine:~$ grep 'r..o' /etc/passwd
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
kernoops:x:116:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false
grep 'o{2}' /etc/passwd #匹配出现2次 o 的
wc 文件内容的统计
-l 统计你有多少行
-w 统计有多少个单词
yhq@yhq-virtual-machine:~$ cat /etc/passwd | wc -l #统计有多少个用户
46
awk 流式编辑器 针对文档的行去操作 一行一行的去执行
yhq@yhq-virtual-machine:~$ head -n 2 /etc/passwd | awk -F ':' '{print $1 $7}'
root/bin/bash
daemon/usr/sbin/nologin
-F 指定分隔符
$0 代表所有的列
$1 代表 第一列
yhq@yhq-virtual-machine:~$ head -n 2 /etc/passwd | awk -F ':' '{print $1"~"$7}' 指定字符串连接符 一定要双引号
root~/bin/bash
daemon~/usr/sbin/nologi
awk /root/ /etc/passwd #匹配root
awk -F ':' '$1 ~/root/' /etc/passwd #匹配第一列式root 的 那一行
awk -F ':' '$3==0' /etc/passwd #匹配第三列等于0的哪一行
awk -F ':' '$7!="/usr/sbin/nologin"' /etc/passwd
awk -F ':' '$3 < $4' /etc/passwd
awk -F ':' '$3 > 100 || $7 == "/usr/sbin/nologin"' /etc/passwd
awk -F ':' '$3 > 5 && $3 < 7' /etc/passwd
awk -F ":" '{(total=total+$3)};END{print total}' /etc/passwd #对所有行第三列求和
head -n 3 /etc/passwd | awk -F ':' '$1 == "root"'
uniq unique 删除重复的行 跟sort 命令 组合使用
sort -n -t ":" -k 1 | uniq -c
-c 在每行前面加上出现的次数
-d 只输出重复的行 多行只输出一行
-D 只输出重复的行 多行有几行输出几行
-i 忽略大小写
yhq@yhq-virtual-machine:~$ sort test.txt | uniq -c
1 apple
2 banana
1 caomei
1 huaguang
1 juhua
1 orange
yhq@yhq-virtual-machine:~$ sort test.txt | uniq -d
banana
yhq@yhq-virtual-machine:~$ sort test.txt | uniq -D
banana
banana
sort 排序 默认按照首字母排序
-n 按照数值排序
-t 指定分割符
-k 指定第几列
-r 逆向排序
cat /etc/passwd | sort -n -t ":" -k 3 -r 按照 :分割符 指定第三列 纯数值排序 逆向排序
面试题 : 查找你最常使用的10条命令
history |awk '{print $2}'| sort |uniq -c|sort -n -k 1 -r|head -n 10
相关文章
- Linux模块化机制和module_init
- Linux修改文件内容【命令】
- Linux: 查看网络流量
- Linux基础:systemctl和journalctl常用命令
- 如何使用Pacifica图标美化你的linux桌面
- Linux 基础命令 – watch
- linux 查看glibc版本
- Linux上查看造成IO高负载的进程
- linux内核进程的创建与初始化
- 【Linux操作系统】基础概念和常用指令(一)
- 用navicat访问linux数据库,成功实现Navicat访问Linux中安装的MySQL数据库
- Linux命令之cd
- linux 防止误操作 mysql 数据库技巧
- Useradd- Linux必学的60个命令
- Linux应用开发(六)——内存管理单元MMU
- 《构建高可用Linux服务器 第3版》—— 3.1 Vim的基础用法及进阶心得
- linux切换到root用户,kali怎么切换root身份运行
- mysql—Linux系统直接进入mysql服务器,并实现一些基础操作
- WEB安全基础 - - -Linux反弹shell
- 【正点原子Linux连载】第一章在Ubuntu下编写C++--摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- Linux 之 arm linux 与 windows 使用 tftp 进行文件传输的简单整理
- linux入门基础——linux网络配置
- 【Linux】linux经常使用基本命令
- linux后台运行和关闭、查看后台任务
- 在docker中安装docker,轻松实现 docker in docker (dind)的应用,并在带有docker的Linux系统中安装基础依赖,搭建Python环境,部署自己的项目或CI和测试
- 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---05
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---55
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---42
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---33
- 微软:Azure支持Intel架构Clear Linux系统