Linux 文本处理

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 选项指定的文本。

你可能感兴趣的:(Linux)