1.cut
根据条件 从命令结果中提取对应内容
-
截取出1.txt文件中前两行的第五个字符
head -2 1.txt | cut -c 5
-c : 按字符选取内容
-
截取出1.txt文件中前2行以”:”进行分割的第1,2段内容
head -2 1.txt | cut -d ':' -f 1,2
-d : 指定分割符
-f : 分割以后显示第几行内容
2.sort
针对文本文件的内容 ,以行为单位来排序
- 对字符串排序
- 去重排序
-u : 去掉重复的 - 对数值排序
(默认为字典序列)
-n : 按照数值大小排序
-r :使次序颠倒 - 对成绩排序
-t : 指定字段分隔符
-k : 根据哪一列排序
3.wc
wc 文件名 : 显示指定文件的字节数 单词数 行数 等信息
参数:
-c : 字节数
-w : 单词数
-l : 行数
4.uniq
uniq [参数] 文件名
用于检查及删除文本文件中重复出现的行,一般与sort命令结合使用
参数 :
-c :统计每行内容出现的次数
5.tee
通过 tee 可以将命令结果通过 管道 输出到多个文件中
用法:命令结果 | tee 文件1 文件2 文件3
将去重统计的结果放到a.txt b.txt c.txt 中
cat 5.txt | sort | uniq -c | tee a.txt b.txt c.txt
6.tr
用于 替换 或 删除文件中的字符
用法1 :命令结果 | tr 被替换的字符 新字符
用法2 :命令结果 | tr -d 被删除的字符
用法3 :单词计数
# 统计每个单词出现的次数
[root@hadoop01 export]# cat words.txt | tr ',' '\n' | sort | uniq -c
1 flume
2 hadoop
2 hello
1 hive
1 jerry
1 kitty
1 sqoop
1 tom
2 world
7.split
通过 split 将 大文件 切分成 若干小文件
- 按字节切分
split -b 10k 文件名 (将大文件切分成10KB的若干个小文件) - 按行数切分
split -l 10 文件名 (将大文件切分成10行的若干个小文件)
8.awk
通过awk实现 模糊查询 ,按需提取字段,还可以进行判断和简单的运算等.
-
模糊查询
awk '/zhangsan | lisi/' 1.txt
-
指定分隔符,根据下标显示内容
awk -F ',' '{print $1,$2,$3}' 1.txt
-F ’ , ’ :使用指定字符分割
$ + 数字 :获取第几段内容
$0 :获取当前行内容
NF :表示当前行共有多少个字段
$NF :表示最后一个字段
$(NF-1) :代表倒数第二个字段
NR :代表处理的是第几行 -
指定输出字段的分隔符
awk -F ' ' '{OFS="==="}{print $1,$2,$3}' 1.txt
OFS=“字符” 向外输出时的段分割字符串
-
调用awk提供的函数
awk -F ' ' '{print toupper($2)}' 1.txt
函数名:
toupper() 字符转成大写
tolower() 字符转成小写
length() 返回字符长度 -
通过if语句判断
## score.txt如果及格,就显示 $1, $4 awk -F ',' '{if($4>60) print $1, $4 }' ## 显示姓名, $4, 是否及格 awk -F ',' '{if($4>60) print $1, $4, "及格"; else print $1, $4, "不及格"}' score.txt
-
段内容求和
awk -F ',' 'BEGIN{}{total=total+$4}END{print total, NR, (total/NR)}' score.txt
awk ‘BEGIN{执行前语句}{处理每一行时要执行的语句}END{处理完所有的行后要执行的语句}’ 文件名
9.sed
通过 sed 可以实现过滤 和 替换 的功能