Linux文本分析处理命令大全

一文带你从零掌握Linux文本分析处理命令,包括cat、sort、uniq、cut、paste、join、comm、diff、patch、tr、sed、aspell。

cat——进行文件之间的拼接并且输出到标准输出
常用选项:
-A,显示文本中的控制字符,如Tab和换行
-n,给文本行添加行号
-s,禁止输出多个空白行
sort——对文本行进行排序
sort可以把多个文件合并为一个有序的文件 >
选项:
-b(–ignore-leading-blanks)忽略每行开头空格,从第一个非空白字符开始排序
-f(–ignore-case)让排序不区分大小写
-n(–numeric-sort)基于字符串的数值来排序,而不是字母值
-r(–reverse)按相反顺序排序。结果按照降序排列,而不是升序。
-k(–key=field1[,field2])从对field1到field2之间的字符排序。
-m(–merge)把每个参数看作是预排序的文件。把多个文件合并成一个排好序的文件,不执行额外的排序
-o(–output=file)输出到文件
-t(–field-separator=char)自定义域分隔字符。默认域由空格或制表符分隔
几个应用场景:

#du命令指定文件或目录所占用的磁盘空间,结合sort -n和-r选项,输出占用磁盘空间最大的用户
du -s /usr/share/* | sort -nr | head
#对ls输出的文件大小进行排序
ls -l /usr/bin | sort -nr -k 5 | head
#可以有多个-k选项,即指定多个排序关键值
ls -l /usr/bin | sort --key=6r --key=5nr | head

uniq——通知或省略重复的行
给定一个排好序的文件,可以删除任意重复行,常与sort一块使用来清理重复输出。
选项:
-c 输出所有重复行,每行开头显示重复次数
-d 只输出重复行,而不是特有的文本行
-f n 忽略每行开头的n个字段,字段之间有且只能由空格分隔
-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选项指定的文本

#使用-d指定:为分隔符
cut -d ':' -f 1 /etc/passwd | head

paste——合并文本行
与cut相反,会添加一个或多个文本列到文件中。
应用场景:将文件中的两个字段调换位置。
join——连接两文件中具有相同字段的行 
类似关系型数据库,将多个享有共同关键域的表格数据结合起来。默认情况join命令使用空白字符作为输入字段的界定符,一个空格作为输出字段的界定符。可以通过选项修改。

  • 文本比较

comm——逐行比较两个已排序文件 
diff——逐行比较文件 
patch——对原文件进行diff操作

  • 非交互式文本编辑

tr——替换或删除字符 
sed——用于文本过滤和转换的流编辑器 
aspell——交互式拼写检查工具

其他还包括split(把文件分割成碎片)、csplit(基于上下文把文件分割成碎片)、sdiff(并排合并文件差异)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值