Linux学习(三):管道相关命令
学习目标
- 熟练掌握以下命令
- 1.cut
- 2.sort
- 3.wc
- 4.uniq
- 5.tee
- 6.tr
- 7.split
- 8.awk
- 9.sed / grep
熟练掌握以下命令
1.cut
准备工作
成绩表信息(使用 逗号 分割)
zhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maq 88 22 66zhouba 98 44 46
说明
第一列:姓名
第二列:语文成绩
第三列:数学成绩
第四列:英语成绩
vim 1.txt
111:aaa:bbb:ccc
222:ddd:eee:fff
333:ggg:hhh
444:iii
目标
cut 根据条件 从命令结果中 提取 对应内容
实现
第一步: 截取出1.txt文件中前2行的第5个字符
head -2 1.txt | cut -c 5
第二步: 截取出1.txt文件中前2行以”:”进行分割的第1,2段内容
head -2 1.txt | cut -d ':' -f 1,2head -2 1.txt | cut -d ':' -f 1-2
小结
通过 cut 操作 目标文件 可以根据条件 提取对应内容
2.sort
准备工作
vim score.txt
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46
说明
第一列:姓名
第二列:语文成绩
第三列:数学成绩
第四列:英语成绩
目标
sort可以针对文本文件的内容,以行为单位来排序
路径
第一步:对字符串排序
第二步:去重排序
第三步:对数值排序
第四步:对成绩排序
实现
第一步:对字符串排序
创建文本,添加字符串
[root@Test01 tmp]# vim 2.txt
banana
apple
pear
orange
pear
查看文本
[root@Test01 tmp]# cat 2.txt
banana
apple
pear
orange
pear
排序
[root@Test01 tmp]# sort 2.txt
apple
banana
orange
pear
pear
第二步:去重排序
它的作用很简单,就是在输出行中去除重复行。
[root@Test01 tmp]# sort -u 2.txt
apple
banana
orange
pear
第三步:对数值进行排序
准备数据
[root@Test01 tmp]# vim 3.txt
1
3
5
7
11
2
4
6
10
8
9
查看文本
[root@Test01 tmp]# cat 3.txt
1
3
5
7
11
2
4
6
10
8
9
默认按照字符串排序
[root@Test01 tmp]# sort 3.txt
1
10
11
2
3
4
5
6
7
8
9
升序
[root@Test01 tmp]# sort -n 3.txt
1
2
3
4
5
6
7
8
9
10
11
倒序
[root@Test01 tmp]# sort -n -r 3.txt
11
10
9
8
7
6
5
4
3
2
1
合并式
[root@Test01 tmp]# sort -nr 3.txt
11
10
9
8
7
6
5
4
3
2
1
第四步: 对成绩排序
# 根据第二段成绩 进行倒序显示 所有内容
sort -t ',' -k2nr score.txt
3.wc
准备数据
vim 4.txt
111
222 bbb
333 aaa bbb
444 aaa bbb ccc
555 aaa bbb ccc ddd
666 aaa bbb ccc ddd eee
目标
显示指定 文件 字节数,单词数,行数 等信息
路径
第一步:显示指定 文件 字节数 单词数 行数 信息
第二步:只显示 文件 的行数
第三步:统计多个文件的 行数 单词书 字节数
第四步:查看 /etc 目录下 有多少个 子内容
实现
第一步: 显示指定文件字节数, 单词数, 行数 信息.
第二步: 只显示 文件 的行数
第三步: 统计多个文件的 行数 单词数 字节数
第四步: 查看 /etc
目录下 有多少个 子内容
小结
通过 wc文件
就可以 统计 文件的 字节数,单词数,行数
4.uniq
uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令 结合使用
准备工作
vim 5.txt
张三 98
李四 100
王五 90
赵六 95
麻七 70
李四 100
王五 90
赵六 95
麻七 70
目标
uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令 结合使用
路径
第一步:实现去重效果
第二步:去重且统计出现的次数
实现
第一步:实现去重效果
第二步:不但去重,还要 统计出现的次数
小结
- 通过
uniq [选项] 文件
就可以完成 去重行 和 统计次数
5.tee
目标
通过 tee
可以将命令结果 通过管道 输出到多个文件中
实现
将去重统计的结果 放到 a.txt、b.txt、c.txt 文件中
cat 5.txt |sort |uniq -c | tee a.txt b.txt c.txt
小结
- 通过
tee
可以将命令结果 通过管道 输出到 多个文件 中
6.tr
目标
- 通过
tr
命令用于 替换 或者 删除 文件中的字符
路径
- 第一步:实现 替换 效果
- 第二步:实现 删除 效果
- 第三步:单词计数
实现
第一步:实现 替换 效果
# 将 小写i 替换成 大写 I
# 把itheima的转换为大写
# 把 HELLO 转成 小写-----------------------------------# 将 小写i 替换成 大写 I
echo "itheima" | tr 'i' 'I'# 把itheima的转换为大写
echo "itheima" |tr '[a-z]' '[A-Z]'# 把 HELLO 转成 小写
echo "HELLO" |tr '[A-Z]' '[a-z]'
第二步: 实现删除效果
需求: 删除abc1d4e5f中的数字
echo 'abc1d4e5f' | tr -d '[0-9]'
第三步:单词计数
准备数据:words.txt
hello,world,hadoop
hive,sqoop,flume,hello
kitty,tom,jerry,world
hadoop
1 将 逗号 换成 换行
2 排序
3 去重
4 计数
统计每个单词出现的次数
cat words.txt | tr ',' '\n' | sort | uniq -c
7.split
准备数据
# 查看 /etc目录下 以.conf以结尾的文件的内容
cat -n /etc/*.conf# 将命令结果 追加到 /export/v.txt 文件中
cat -n /etc/*.conf >> /export/v.txt
目标
- 通过
split
命令 将 大文件 切分成 若干 小文件
路径
- 第一步:按照 字节 将 大文件 切分成若干小文件
- 第二步:按照 行数 将 大文件 切分成若干小文件
实现
第一步
第二步
小结
- 通过
split 选项 文件名
命令将 大文件 切分成 若干 小文件
8.awk
准备数据
- 之前创建好的学生成绩表 score.txt
目标
- 通过
awk
实现 模糊查询,按需提取字段,还可以进行 判断 和 简单的运算等
步骤
- 第一步:模糊查询
- 第二步:指定分隔符,根据下标显示内容
- 第三步:指定输出字段的分隔符
- 第四步:调用
awk
提供的函数 - 第五步:通过
if
语句 判断 $4 是否及格 - 第六步:段内容 求和
实现
第一步:查询 zhangsan 和 lisi 的成绩
第二步: 指定分割符, 根据下标显示内容
第三步: 指定分割符, 根据下标显示内容
第四步: 调用 awk 提供的函数
第五步: if语句 查询及格的学生信息
第六步: 段内容 求学科平均分
awk -F ',' 'BEGIN{}{total=total+$4}END{print total, NR, (total/NR)}' score.txt
9.sed / grep
准备数据:1.txt
aaa java root
bbb hello
ccc rt
ddd root nologin
eee rtt
fff ROOT nologin
ggg rttt
目标
- 通过
sed
可以实现 过滤 和 替换 功能
路径
- 第一步:实现 查询 功能
- 第二步:实现 删除 功能
- 第三步:实现 修改 功能
- 第四步:实现 替换 功能
- 第五步:对 原文件 进行操作
- 第六步:综合 练习
实现
第一步
练习1 列出 1.txt的 1~5行 的数据
sed -n -e '1,5p' 1.txt
练习2 列出1.txt的所有数据
sed -n -e '1,$p' 1.txt
练习3 列出1.txt的所有数据 且 显示行号
sed -n -e '1,$=' -e '1,$p' 1.txt 简化版cat -n 1.txtcat -b 1.txtnl 1.txt
练习4: 查找1.txt中包含root行
sed -n -e '/root/p' 1.txt
练习5 列出1.txt中包含root的内容,root不区分大小写,并显示行号
nl 1.txt | sed -n -e '/root/p'
nl 1.txt | grep -i root
cat -n 01.txt | grep -i root
练习6 查找出1.txt中 字母
r
后面是多个t的行,并显示行号
nl 1.txt | sed -nr -e '/r+t/p'
sed -nr -e '/r+t/p' -e '/r+t/=' 1.txt
第二步: 实现 删除 功能
练习1 删除1.txt中前3行数据,并显示行号
nl 1.txt | sed -e '1,3d'
练习2 保留1.txt中前4行数据,并显示行号
nl 1.txt | sed -e '5,$d'
nl 1.txt | sed -n -e '1,4p'
第三步: 实现 修改 功能
练习1: 在1.txt的第二行后添加aaaaa,并显示行号
nl 1.txt | sed -e '2a aaaaa'
练习2 在1.txt的第1行前添加bbbbb,并显示行号
nl 1.txt | sed -e '1i bbbbb'
第四步: 实现 替换 功能
练习1 把1.txt中的nologin替换成为huawei,并显示行号
nl 1.txt | sed -e 's/nologin/huawei/'
练习2 把1.txt中的1,2行替换为aaa,并显示行号
nl 1.txt | sed -e '1,2c aaa'
第五步: 对 原文件 进行操作
练习1 在1.txt中把nologin替换为 huawei
sed -i -e 's/nologin/huawei/' 01.txt
练习2 在1.txt文件中第2、3行替换为aaaaaa
sed -i -e '2,3c aaa' 01.txt
注意:在进行操作之前,最好是对数据进行备份,放置操作失误,数据无法恢复!
练习3 删除1.txt中前2行数据,并且删除原文件中的数据
sed -i -e '1,2d' 01.txtnl 1.txt 查看数据
第六步: 综合 练习
练习1 获取ip地址
ifconfig eth0 | grep "inet addr" | sed -e 's/^.*inet addr://' | sed -e 's/Bcast:.*$//'
练习2 从1.txt中提出数据,匹配出包含root的内容,再把nologin替换为itheima
nl 01.txt | grep 'root' | sed -e 's/nologin/itheima/'
nl 01.txt | sed -n -e '/root/p' | sed -e 's/nologin/itheima/'
#只显示替换内容的行nl 01.txt | sed -n -e '/root/{s/nologin/itheima/p}'
练习3 从1.txt中提出数据,删除前2行,并把nologin替换为itheima,并显示行号
nl 01.txt | sed -e '1,2d' | sed -e 's/nologin/itheima/'
Linux学习(三):管道相关命令相关推荐
- Linux学习之网络相关命令
Linux的核心,网络相关 很多工具也是通过分析加工 /proc./sys 下的数据来工作的,而那些更加细致.专业的性能监测和调优,可能还需要更加专业的工具(perf.systemtap等)和技术才能 ...
- linux命令看文件内容,Linux文件内容查看相关命令
1.more命令 在Linux中,more命令是一个基于vi编辑器的文本过滤器,它能以全屏的方式按页显示文本文件的内容,more里面内置了一些快捷键. (1)命令语法 more(选项)(参数) (2) ...
- Linux查询网络配置相关命令
Linux查询网络配置相关命令 查看网络接口信息 ifconfig:查看系统所有网络接口相关信息 ifconfig -s:查看所占内存 查看及修改主机名 hostname:查看主机名称 hostnam ...
- Linux学习(三)
Linux学习(三) vim编辑器与shell脚本 vim文本编辑器 在linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数 vim编辑器中设置了三种模式 命令模式 末行模式 编辑模 ...
- Linux网络属性配置相关命令
Linux网络属性配置相关命令: 前言: Linux属性配置可以分为两类.一类通过命令配置,另一类通过修改配置文件配置. Linux属性配置的相关命令可以分为三大类: 一.ifcfg命令家族:①ifc ...
- nova 命令汇总三 ——网络相关命令
nova 命令汇总三 --网络相关命令 和网络相关的操作主要包括:add-fixed-ip.add-floating-ip.add-secgroup.fixed-ip-get .fixed-ip-re ...
- linux断电并重启命令,Linux系统关机重启相关命令
1.立即重启命令 方法1: [root@itbkz ~]# init 6 方法2: [root@itbkz ~]# reboot 方法3: [root@itbkz ~]# shutdown -r no ...
- 好记性不如烂笔头-linux学习笔记4apache相关知识
好记性不如烂笔头-linux学习笔记4apache相关知识 apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 ...
- Linux 启动jar项目相关命令(解决关闭Linux终端,程序自动停止问题)
Linux 启动jar项目相关命令 序言 启动jar包命令相关问题及解决办法 问题描述 解决办法 结语 序言 开发中在服务器上部署项目避免不了的,无论是测试还是开发都会遇到要重启项目及部署项目,所以部 ...
- 【Linux学习】之chown命令
[Linux学习]之chown命令 1. 创建目录 [root@servera ~]# mkdir /home/consultants 2. 将consultants 目录的组所有权更改给 consu ...
最新文章
- pandas数据预处理(字段筛选、query函数进行数据筛选、缺失值删除)、seaborn可视化分面图(facet)、seaborn使用Catplot可视化分面箱图(Faceted Boxplot)
- python%20语言 20培训_Python语言学习之20个值得学习的Python技巧
- PS调出通透唯美阳光外景女生照片
- hdfs.DFSClient: Exception in createBlockOutputStre
- JS浮点数运算Bug的解决办法
- Django(part34)--一对多映射
- HTML5清除2个div标签的空白,DIV标签里面IMG图片下方留有空白怎么办
- 学习日报 7-10(验证码)
- 【直播分享】实现LOL小地图英雄头像分析案例【华为云分享】
- python 基本数据类型及其功能-2-字符串 重点命令
- python编程与几何图形pdf_《程序员数学:使用 Python 进行 3D 图形,机器学习和仿真》PDF 免费下载...
- 修改TIM的默认路径
- 基于Zigbee和LabView的无线温度采集系统
- 魅族手机usb计算机连接文件夹,手机连接电脑传输文件(手机usb连接电脑只充电)...
- html事件页面切换表格,表格页面切换快捷键 可以使用快捷键CTRL+TAB键
- Java实现163邮箱发送邮件到QQ邮箱
- 魔兽世界插件编写-第一个插件-空插件 EmptyAddOns
- 其实你不懂我的芯--SIM卡的前世今生
- (附源码)ssm智慧社区管理系统 毕业设计 101635
- 从知识工程到知识图谱全面回顾
热门文章
- 今日行业报告更新10月25日
- python希腊字母字符串_#10 Python字符串
- Images Aesthetic Predictors Based on Weighted CNNs 论文翻译解读
- Revit命令名称与命令ID
- html+css制作简历
- 腾讯实时音视频SDK[三]:小程序端实现
- python提供了几个基本的数值运算操作符_慢步学习,二级python,数字类型及其运算...
- 研究目标与研究内容的撰写
- matlab_医学CT重建 ART,SART算法
- 项目学习 —— 图书商城后台管理