linux命令 (管道命令)
管道命令
- cut
- sort
- wc
- uniq
- tree
- tr
- split
- awk
- sed
- grep
1.cut
1.1目标
cut
根据条件 从命令结果中 提取 对应内容、
1.2实现
第一步: 截取出1.txt文件中前2行的第5个字符
head -2 1.txt | cut -c 5
第二步: 截取出1.txt文件中前2行以”:”进行分割的第1,2段内容
范围控制
方式一:head -2 1.txt | cut -d ‘:’ -f 1,2
方式二:head -2 1.txt | cut -d ‘:’ -f 1-2
小结
通过 cut 动作 目标文件
可以根据条件 提取对应内容
2.sort
2.1目标
sort可针对文本文件的内容,以行为单位来排序。
2.2路径
- 第一步: 对字符串排序
- 第二步: 去重排序
- 第三步: 对数值排序
- 第四步: 对成绩排序
2.3实现
第一步: 对字符串排序
第二步: 去重排序
第三步: 对数值排序
默认按照首个字母排序
-
升序
-
倒序
-
合并式
第四步:对成绩排序
根据第二段成绩 进行倒序显示 所有内容
sort -t ‘,’ -k2nr score.txt
3.wc命令
3.1目标
显示指定文件 字节数, 单词数, 行数 信息.
3.2路径
- 第一步: 显示指定文件 字节数, 单词数, 行数 信息.
- 第二步: 只显示 文件 的行数
- 第三步: 统计多个文件的 行数 单词数 字节数
- 第四步: 查看
/etc
目录下 有多少个 子内容3.3实现
第一步: 显示指定文件 字节数, 单词数, 行数信息.
第二步: 只显示 文件 的行数
第三步: 统计多个文件的 行数 单词数 字节数
第四步: 查看/etc
目录下 有多少个 子内容3.4小结
通过wc 文件
就可以 统计 文件的 字节数、单词数、行数.
4.uniq
4.1 目标
uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用。
4.2路径
- 第一步:实现去重效果
- 第二步:不但去重,还要 统计出现的次数
4.3实现
第一步:实现去重效果
第二步:不但去重,还要 统计出现的次数
4.4小结
通过 uniq [选项] 文件
就可以完成 去重行 和 统计次数
5.tee
5.1目标
通过 tee
可以将命令结果 通过管道 输出到 多个文件中
5.2目标
将去重统计的结果 放到 a.txt、b.txt、c.txt 文件中
5.3小结
通过 tee
可以将命令结果 通过管道 输出到 多个文件中
6.tr
6.1目标
通过 tr
命令用于 替换 或 删除 文件中的字符。
6.2 路径
6.2 路径
- 第一步: 实现 替换 效果
- 第二步: 实现 删除 效果
- 第三步: 完成 单词计数 案例
6.3
第一步: 实现 替换效果
将 小写i 替换成 大写 I
#把itheima的转换为大写
把 HELLO 转成 小写
第二步: 实现删除效果
需求: 删除abc1d4e5f中的数字
第三步: 单词计数
7 split
7.1目标
通过 split
命令将大文件 切分成 若干小文件
7.2路径
- 第一步: 按 字节 将 大文件 切分成 若干小文件
- 第二步: 按 行数 将 大文件 切分成 若干小文件
7.3 实现
第一步: 按 字节 将 大文件 切分成 若干小文件
第二步: 按 行数 将 大文件 切分成 若干小文件
7.4 小结
通过 split 选项 文件名
命令将大文件 切分成 若干小文件
8 awk
8.1 目标
通过 awk
实现 模糊查询, 按需提取字段, 还可以进行 判断 和 简单的运算等
8.2 步骤
- 第一步: 模糊查询
- 第二步: 指定分割符, 根据下标显示内容
- 第三步: 指定输出字段的分割符
- 第四步: 调用 awk 提供的函数
- 第五步: 通过if语句判断$4是否及格
- 第六步: 段内容 求和
#### 8.3实现
第一步: 搜索 zhangsan 和 lisi 的成绩
第二步: 指定分割符, 根据下标显示内容
选项
第三步: 指定分割符, 根据下标显示内容
选项
第四步: 调用 awk 提供的函数
常用函数如下:
第五步: if语句 查询及格的学生信息
选项
第六步: 段内容 求学科平均分
9.sed
9.1目标
通过 sed 可以实现 过滤 和 替换 的功能.
9.2目标
9.2 路径
- 第一步: 实现 查询 功能
- 第二步: 实现 删除 功能
- 第三步: 实现 修改 功能
- 第四步: 实现 替换 功能
- 第五步: 对 原文件 进行操作
- 第六步: 综合 练习
9.3目标
第一步: 实现 查询 功能
选项
sed -n -e '1,5p' 1.txt
sed -n -e '1,$p' 1.txt
可选项 | 含义 |
---|---|
= | 打印当前行号 |
sed -n -e '1,$=' -e '1,$p' 1.txt
简化版
cat -n 1.txt
cat -b 1.txt
nl 1.txt
答案:
sed -n -e '/root/p' 1.txt
可选项 | 英文 | 含义 |
---|---|---|
I | ignore | 忽略大小写 |
答案:
nl 1.txt | sed -n -e '/root/Ip'
nl 01.txt | grep -i root
cat -n 01.txt | grep -i root
可选项 | 英文 | 含义 |
---|---|---|
-r |
regexp-extended | 识别正则 |
答案:
nl 01.txt | sed -nr -e '/r+t/p'
或者
sed -nr -e '/r+t/p' -e '/r+t/=' 01.txt
第二步: 实现 删除 功能
可选项 | 英文 | 含义 |
---|---|---|
d |
delete | 删除指定内容 |
答案:
nl 01.txt | sed -e '1,3d'
答案:
nl 01.txt | sed -e '5,$d'
nl 1.txt | sed -n -e '1,4p'
第三步: 实现 修改 功能
参数 | 英文 | 含义 |
---|---|---|
i | insert | 目标前面 插入内容 |
a | append | 目标后面 追加内容 |
答案:
nl 01.txt | sed -e '2a aaaaa'
答案:
nl 01.txt | sed -e '1i bbbbb'
第四步: 实现 替换 功能
英文 | 含义 | |
---|---|---|
s/oldString/newString/ | replace | 替换 |
答案:
nl 1.txt | sed -e 's/nologin/huawei/'
选项 | 英文 | |
---|---|---|
2c 新字符串 |
replace | 使用新字符串 替换 选中的行 |
答案:
nl passwd | sed -e '1,2c aaa'
第五步: 对 原文件 进行操作
参数 | 英文 | 含义 |
---|---|---|
-i | in-place | 替换原有文件内容 |
答案:
sed -i -e 's/nologin/huawei/' 01.txt
答案:
sed -i -e '2,3c aaa' 01.txt
注意:在进行操作之前,最好是对数据进行备份,放置操作失误,数据无法恢复!
答案:
sed -i -e '1,2d' 01.txt
nl passwd 查看数据
第六步: 综合 练习
答案:
ifconfig eth0 | grep "inet addr" | sed -e 's/^.*inet addr://' | sed -e 's/Bcast:.*$//'
答案:
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}' #只显示替换内容的行
答案:
nl 01.txt | sed -e '1,2d' | sed -e 's/nologin/itheima/'
上一篇: nginx作为下载文件服务器