注意本章最重点是awk
1.cut
1.cut 根据条件从命令中提取对应的内容
列如:head -2 1.txt| cut -c 5 截取文件1.txt中前两行的第五个字符
- 截取1.txt中前2行以’:'进行分割的1,2端内容
命令 含义
cut 动作 文件 从指定文件中截取内容
选项卡
参数 含义
-c 按字符选取内容
-d 分隔符 指定分隔符
-f n1,n2 分割以后显示第几段内容,使用’ 指定字符 ’ 分割
范围控制
范围 含义
n 只显示第n项
n - 显示从第n项到行尾
n -m 显示从第n项到第m项(包括m)
截取1.txt中前2行以’:'进行分割的1,2端内容
head -2 1.txt|cut -d ‘:’ -f 1,2 截取从1和2两个项
head -2 1.txt|cut -d ‘:’ -f 1-2 截取1到2
cut -c 4 查看第4个数字
2.sort
含义:sort是针对文本文件内容,以行尾单位排序
2.1用法:
1.对字符串 排序
2.去重排序
3.对数值排序
4.对成绩排序
2.2实现
1.字符串排序 sort 文件名/路径
2.去重排序 -u 是去掉重复的
sort -u 文件名/路径
3.数值排序 -n 按照数值的从小到大 ;-r 使排序颠倒
sort -n 文件名/路径 从大到小
sort -nr 文件名/路径 从小到大
4.对成绩排序 -t 指定字段分隔符; -k数值 根据指定列排序
例:根据第二段成绩 倒序所有内容
sort -t ',' -k2nr score.txt
多个横线之间可以省略
3.WC命令
wc:显示指定文件的字节数,单词数,行数
wc选项卡
-l 计算一共多少行
-c 计算字节
-w 计算单词
格式:wc -l 文件名/路径
4.uniq
用法:uniq命令用于检查和删除文本文件中的重复行,一般和sort命令结合使用
1.去重
cat 文件名|sort|uniq
2.去重统计出现的次数
cat 文件名|sort|uniq -c
5.tee
tee可以将命令结果通过管道输出多个文件中
将去重统计的结果放到 a.txt b.txt c.txt文件中
cat 5.txt |sort |uniq -c|tee a.txt b.txt c.txt
6.tr
通过tr命令用于替换或者删除文件中的字符
1.实现替换效果
2.实现删除的效果
需求:删除abc1d4e5f中的数字
echo ‘abc1d4e5’|tr -d ‘[0-9]’
3.单词计数
统计每个单词出现的次数使用,切割
cat 文件名 | tr ‘,’ ‘\n’ | sort | uniq -c
7 split
通过split命令将大文件切分成若干小份
1.按照字节将大文件切分
split -b 1k 文件 切成多个1kb的小文件
2.按照行数将大文件切分
split -l 10 文件 切成多个10行小文件
8 awk
通过awk 模糊查询 ,按需要提取字段,还可以进行判断和简单的运算
awk
在’'里面的|是或的意思 不是管道
awk -F ’ ’ ‘{print $1}’ score.txt
-F 是按照空格切割 $1是切割后的第一个单词
1.模糊查询
awk ‘/zhang|lisi|/’ score.txt 模糊查询zhangsan或者lisi
2.指定分割符,根据下标显示内容
awk -F ‘,’ ‘{print $1,$2,$3}’ 1.txt 根据,分割 打印第一段,第二段,第三段内容
awk选项卡
3.指定分割符 根据下标显示内容
awk -F ’ ’ ‘{OFS="==="}{print $1,$2,$3}’ 1.txt
根据 逗号 分割, 打印 第一段 第二段 第三段 内容
OFS=“字符” 表示想外输出是的段分割字符串
4.调用awk提供的函数
awk -F ‘,’ ‘{print toupper($2)}’ 1.txt --》根据逗号 分割 把第二段的内容转成大写字母
常用函数如下:
把指定的内容转成大写之后再转成小写
awk -F ‘,’ ‘{print tolower(toupper($2))}’ 1.txt
5.通过if判断$4是否及格
命令
含义
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”, 就打印这一行内容
‘‘ 和"" 不同
9.sed
sed可以实现过滤和替换的功能