Linux 文本处理

来源:互联网 发布:夜跑装备 知乎 编辑:程序博客网 时间:2024/06/06 02:03

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 | headsort --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 选项指定的文本。
原创粉丝点击