Author : Janloong Do_O
文本处理
cat – 连接文件并且打印到标准输出
sort – 给文本行排序
uniq – 报告或者省略重复行
cut – 从每行中删除文本区域
paste – 合并文件文本行
join – 基于某个共享字段来联合两个文件的文本行
comm – 逐行比较两个有序的文件
diff – 逐行比较文件
patch – 给原始文件打补丁
tr – 翻译或删除字符
sed – 用于筛选和转换文本的流编辑器
aspell – 交互式拼写检查器
cat
cat -A 显示出非打印字符
cat -n 给文本行添加行号
cat -s 禁止空白行输出多个空白行(可以单个空白行)
sort
选项 | 描述 | |
---|---|---|
-b | –ignore-leading-blanks | 默认情况下,对整行进行排序,从每行的第一个字符开始。这个选项导致 sort 程序忽略 每行开头的空格,从第一个非空白字符开始排序。 |
-f | –ignore-case | 让排序不区分大小写。 |
-n | –numeric-sort | 基于字符串的数值来排序。使用此选项允许根据数字值执行排序,而不是字母值。 |
-r | –reverse | 按相反顺序排序。结果按照降序排列,而不是升序。 |
-k | –key=field1[,field2] | 对从 field1到 field2之间的字符排序,而不是整个文本行。看下面的讨论。 |
-m | –merge | 把每个参数看作是一个预先排好序的文件。把多个文件合并成一个排好序的文件,而没有执行额外的排序。 |
-o | –output=file | 把排好序的输出结果发送到文件,而不是标准输出。 |
-t | –field-separator=char | 定义域分隔字符。默认情况下,域由空格或制表符分隔。 |
example:
ls -l /usr/bin | sort -nr -k 5 | head
sort --key=1,1 --key=2n distros.txt
uniq
选项 说明
-c 输出所有的重复行,并且每行开头显示重复的次数。
-d 只输出重复行,而不是特有的文本行。
-f n 忽略每行开头的 n 个字段,字段之间由空格分隔,正如 sort 程序中的空格分隔符;然而, 不同于 sort 程序,uniq 没有选项来设置备用的字段分隔符。
-i 在比较文本行的时候忽略大小写。
-s n 跳过(忽略)每行开头的 n 个字符。
-u 只输出独有的文本行。这是默认的。
cut
这个 cut 程序被用来从文本行中抽取文本,并把其输出到标准输出。它能够接受多个文件参数或者 标准输入。
选项 说明
-c char_list 从文本行中抽取由 char_list 定义的文本。这个列表可能由一个或多个逗号 分隔开的数值区间组成。
-f field_list 从文本行中抽取一个或多个由 field_list 定义的字段。这个列表可能 包括一个或多个字段,或由逗号分隔开的字段区间。
-d delim_char 当指定-f 选项之后,使用 delim_char 做为字段分隔符。默认情况下, 字段之间必须由单个 tab 字符分隔开。
--complement 抽取整个文本行,除了那些由-c 和/或-f 选项指定的文本。