Linux shell笔记5 基本文本处理

排序去重的操作

sort默认是按照字典序进行排列,之后输出排序后的数据到终端。具体的控制参考man手册。

直接进行sort filename即可,如果需要特殊设置,添加标记即可,比如-d参数可以设置只进行字母数字的比较,忽略其他的特殊字符,或者-f忽略大小写比较,-t跟的是分隔符号,-k确定比较的字段。

比如一个例子是:

sort -t: -k3 filename

sort添加-u参数,只对键值有效,仅仅保留一个键值,其他的全部都丢弃,可以作为一个去重的手段。

Unix中,另去重一个工具是uniq,这通常和sort函数联合使用。注意,uniq是去重处理临近的行,注意3个参数:

  • -c:在输出行前面加上每行在文件中出现的次数
  • -d:仅显示重复行
  • -u:仅显示不重复行

统计文本行数、字数和字符数

wc命令是核心部分。比如

wc 1.txt

输出

18 24 100

表示1.txt文件有18行、24个单词和100个字符

3个重要的参数,分别是:

  • -c 显示字符的个数
  • -w 显示单词的个数
  • -l 显示文件文本行的行数

一般可以和管道进行连接,用于各个数据的统计。

打印和格式化输出数据

prfmtfold是三个常用的命令。

pr [option] [file]

比如-c参数规定输出的列数。

fmt格式化文本段落,使得文本不要超出可见屏幕的范围。

fold限制文本宽度。

补充, 使用head可以提取文本的开头,使用tail提取文本的结尾。

提取、拼接和替换字段

cutjoin是操作的核心部分。

cut用于在规范格式的文本中提取出需要的字段。

cut [option] [file]

join命令可以把linux不同文件中,具有相同的key值的记录信息连接到一起。它根据指定的栏位,把不同的列拼接到一起。

join [options] FILE1 FILE2

tr命令用于从标准输入删除或者替换字符,之后把结果写入标准输出。一般用于小范围的文本替换。一般的格式为:

tr [options] SET1 [SET2]

比如,把所有的小写转换成大写:

tr 'a-z' 'A-Z' < linux.wiki > linux.wiki.upper
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值