管道命令
- cut
- sort
- wc
- uniq
- tee
- tr
- split
- awk
- sed
1 cut
- cut 根据条件 从命令结果中提取对应内容
命令 | 含义 |
---|---|
cut 动作 文件 | 从指定文件 截取内容 |
- 参数
参数 | 英文 | 含义 |
---|---|---|
-c | characters | 按字符选取内容 |
-d 分隔符 | delimiter | 指定分隔符 |
-f n1,n2 | fields | 分割以后显示第几段内容, 使用 , 分割 |
n | 只显示第n项 | |
n- | 显示 从第n项 一直到行尾 | |
n-m | 显示 从第n项 到 第m项(包括m) |
head -2 1.txt | cut -c 5
2 sort
- sort可针对文本文件的内容,以行为单位来排序。
参数 | 英文 | 含义 |
---|---|---|
-u | unique | 去掉重复的 |
-n | numeric-sort | 按照数值大小排序 |
-r | reverse | 使次序颠倒 |
-t | field-separator | 指定字段分隔符 |
-k | key | 根据那一列排序 |
3 wc命令
命令 | 含义 |
---|---|
wc 文件名 | 显示指定文件 字节数, 单词数, 行数 信息 |
- 只显示 文件 的行数
参数 | 英文 | 含义 |
---|---|---|
-c | bytes | 字节数 |
-w | words | 单词数 |
-l | lines | 行数 |
4 uniq
- uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用。
命令 | 英文 | 含义 |
---|---|---|
uniq [参数] 文件 | unique 唯一 | 去除重复行 |
-c | count | 统计每行内容出现的次数 |
5 tee
命令 | 含义 |
---|---|
命令结果 | tee 文件1 文件2 文件3 | 通过 tee 可以将命令结果 通过管道 输出到 多个文件中 |
6 tr
命令 | 英文 | 含义 |
---|---|---|
命令结果 | tr 被替换的字符 新字符 | translate | 实现 替换效果 |
命令结果 | tr -d 被删除的字符 | delete | 删除指定的字符 |
7 split
命令 | 英文 | 含义 |
---|---|---|
split -b 10k 文件 | byte | 将大文件切分成若干10KB的小文件 |
split -l 1000 文件 | lines | 将大文件切分成若干1000行 的小文件 |
8 awk
命令 | 含义 |
---|---|
awk ‘/zhangsan|lisi/’ score.txt | 模糊查询 |
awk -F ‘,’ ‘{print $1, $2, $3}’ 1.txt | 操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容 |
awk -F ’ ’ ‘{OFS="==="}{print $1, $2, $3}’ 1.txt | 操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容 |
awk -F ‘,’ ‘{print toupper($2)}’ 1.txt | 操作1.txt文件, 根据 逗号 分割, 打印 第一段 第二段 第三段 内容 |
awk -F ‘,’ ‘{if($4>60) print $1, $4 }’ score.txt | 如果及格,就显示 $1, $4 |
awk -F ‘,’ ‘{if($4>60) print $1, $4, “及格”; else print $1, $4, “不及格”}’ score.txt | 显示 姓名, $4, 是否及格 |
if($0 ~ “aa”) print $0 | 如果这一行包含 “aa”, 就打印这一行内容 |
if($1 ~ “aa”) print $0 | 如果**第一段 **包含 “aa”, 就打印这一行内容 |
if($1 == “lisi”) print $0 | 如果第一段 等于 “lisi”, 就打印这一行内容 |
awk ‘BEGIN{初始化操作}{每行都执行} END{结束时操作}’ 文件名 | BEGIN{ 这里面放的是执行前的语句 } {这里面放的是处理每一行时要执行的语句} END {这里面放的是处理完所有的行后要执行的语句 } |
- 常用函数如下:
选项 | 英文 | 含义 |
---|---|---|
-F ‘,’ | field-separator | 使用 指定字符 分割 |
$ + 数字 | 获取第几段内容 | |
$0 | 获取 当前行 内容 | |
NF | field | 表示当前行共有多少个字段 |
$NF | 代表 最后一个字段 | |
$(NF-1) | 代表 倒数第二个字段 | |
NR | 代表 处理的是第几行 | |
OFS=“字符” | output field separator | 向外输出时的段分割字符串 |
toupper() | upper | 字符 转成 大写 |
tolower() | lower | 字符 转成小写 |
length() | length | 返回 字符长度 |
9 sed
命令 | 含义 |
---|---|
sed 可选项 目标文件 | 对目标文件 进行 过滤查询 或 替换 |
- 可选参数
可选项 | 英文 | 含义 |
---|---|---|
p | 打印 | |
$ | 代表 最后一行 | |
-n | 仅显示处理后的结果 | |
-e | expression | 根据表达式 进行处理 |
= | 打印当前行号 | |
I | ignore | 忽略大小写 |
-r | regexp-extended | 识别正则 |
d | delete | 删除指定内容 |
i | insert | 目标前面 插入内容 |
a | append | 目标后面 追加内容 |
s/oldString/newString/ | replace | 替换 |
2c 新字符串 | replace | 使用新字符串 替换 选中的行 |
-i | in-place | 替换原有文件内容 |