cut
cut命令是在Linux操作系统中用来从文本数据中提取字段的一个常用命令。它可以根据指定的字段定界符将文本行分割成字段,并提取所需字段的内容
cut [选项参数] filename
选项参数 | 功能 |
---|
-d <分隔符> | delimiter 指定字段的分隔符,默认为制表符 |
-f <行号> | fileds 指定列号,提取第几列 |
-s | 禁止输出不包含定界符的行 |
- 实例
sed
sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出
sed [选项参数] command filename
选项参数 | 功能 |
---|
-e | 直接在指令列模式上进行sed的动作编辑 |
命令 | 说明 |
---|
a | 新增,后接字符串,插入在目前的下一行 |
c | 取代,取代行号之间的行 |
d | 删除 |
i | 插入,后接字符串,插入在目前的上一行 |
s | 替换,后接字符串,插入在目前的上一行 |
- 实例
awk
一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理
awk [选项参数] 'pattern {action}' filename
pattern:表示awk在数据中查找的内容,就是匹配模式
action:在找到匹配内容时所执行的一系列命令
注意:
只有匹配了pattern的行才会执行action
选项参数 | 功能 |
---|
-F <分隔符> | 指定输入文件折分隔符,默认是空格 |
-v <变量名>=<值> | 赋值一个自定义变量。使用该选项将外部值传递给 awk 脚本中的变量 |
内建变量 | 说明 |
---|
$n | 当前记录的第n个字段,字段间由FS分隔 |
$0 | 完整的输入记录 |
FILENAME | 当前文件名 |
NF | 一条记录的字段的数目 |
NR | 已经读出的记录数,就是行号,从1开始 |
FS | Field Separator 字段分隔符(默认是任何空格) |
RS | Record Separator 记录分隔符(默认是一个换行符) |
OFS | Output Field Separator 输出字段分隔符,默认值与输入字段分隔符一致) |
- 实例
统计文本中单词的个数
grep
grep 全称是 Global Regular Expression Print,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
grep [选项参数] pattern files
pattern 通常是一个正则表达式,用于匹配指定的文本模式
files 可以是若干个文件,也可以是目录
选项参数 | 功能 |
---|
-c | 计算符合样式的列数 |
-i | 忽略字符大小写的差别 |
-v | 显示不包含匹配文本的所有行 |
-r | 递归的读取目录下的所有文件,包括子目录 |
元字符 | 功能 |
---|
^ | 行首定位符(包括空格) ,如:'^ha’匹配所有以ha开头的行 |
$ | 行尾定位符(包括空格) ,如:'hadoop$'匹配所有以hadoop结尾的行 |
. | 匹配单个字符(包括空格、符号) ,如:'h.doop’匹配h后接一个任意字符,然后是doop |
* | 匹配*号前的第一个字符0到多次,如:'had*'匹配had后接任意个字符 |
.* | 匹配任意多个字符 (贪婪匹配) |
[] | 匹配方括号中任意一个字符,如’[Hh]adoop’匹配的是Hadoop和hadoop |
[ - ] | 匹配指定范围内的一个字符(不包括空格),如’[h-j]adoop’匹配的是hadoop、iadoop、jadoop |
[^] | 匹配不在指定组里的字符,如’[^h-j]adoop’匹配的是除了hadoop、iadoop、jadoop都匹配 |
< | 词首定位符 (包括空格),如:'<ha’匹配包含以ha开头的单词的行 |
> | 词尾定位符(包括空格),如’doop>'匹配包含以doop结尾的单词的行 |
\b | 单词锁定符,如: '\bhadoop\b’只匹配hadoop |
- 实例
sort
sort命令是将文件进行排序,并将排序结果标准输出。默认情况以第一个字符串的字典顺序来排序
sort [选项参数] (参数)
选项参数 | 功能 |
---|
-n | 依照数值的大小排序 |
-r | 以相反的顺序来排序 |
-t | 设置排序时所用的分隔字符,默认使用TAB |
-k | 指定需要排序的列 |
-u | unique 去重,只能跳过相邻的相同行,并不能进行排序 |