linux 文本处理一

linux中的一切都是文件,所以对文本的处理变得很重要,下面介绍几个常见的文本处理命令:

cat 

cat的基本用法如下:

上图中我们创建了catTest.txt文件,文本的开头是一个制表位,第一行位置有一个换行。cat常用选项如下:

  • -A 选项显示全部的字符。在使用cat显示catTest.txt时,默认是不显示特殊控制字符。如上图显示了包括前面的制表位^I和第一行末尾的行尾符$
  • -n  选线为每行添加行号
在linux中有很多控制符号,如下图所示:

注:上表中的^K都可以使用Ctrl+K按键来实现。
针对^M: DOS(windows系统)使用的换行为^M^J(回车+换行),称为CR与LF,在linux下只有LF(^J/换行)这个换行符号。在使用ssh向服务器传递windows下的文件时,文件中每行的结尾会出现一个^M,这样会在进行文件操作是出现错误,所以需要将^M删除,有两种方法:
  • 将windows文件转换为unix文件,即dos2unix  file
  • 直接使用文本命令删除^M,tr -d  '\r'  filename
在linux中表示:
  • 回车加换行\r\n
  • 换行\n
sort
sort程序将命令行后指定的一个文件或多个文件的内容进行排序,然后把排序结果发送到标准输出。
sort的一般选项如下:
选项描述
-b一般情况下sort的排序都是以每行的第一个字符开始的,
-b选项使sort排序从第一个非空白字符开始排序
-f不区分大小写
-n根据字符串的数字值来进行排序
-r反向选择
-o指定输出文件
-t选择字段分隔符,默认情况下字段分隔符为空格或者制表符
-k     filed1[,field2]对从field1到field2之间的字符排序,不是所有的
sort查看文件系统中最大的磁盘空间使用用户:

按照某个字段排序,sort命令一般是以空格或者制表符为默认的分隔符每行的两个相同字段之间的空格数不一定相同,行之间的多个字段之间的空格也不用一致


上图中是用-k 5表示使用第五个字段进行排序,字段的起始位置是1。事实上对一个字段的排序是对当前字段到行尾的所有字符的排序。

上图中按照第五个字段开始到行尾的字符进行排序。 sort还允许对多个字段分别进行排序,所以可以指定多个排序字段。

在第一个key选中的时候我们指定了一个区域,1,1表示开始于第一个字段,结束于第一个字段。在第二个字段中我们指定了2n,意味着字段使用数字排序。可以在字段位置后面添加
选项字母来进行排序,如b(忽略开头的空格),n(数 值排序),r(逆向排序)等等。

我们列表中第三个字段包含的日期格式不利于排序。那么我们怎样能按照时间顺序来排列这个列表呢?sort能提在key中指定偏移量。


通过指定-k 3.1,-k 3.4和-k 3.7来指定月,日,年为排序键值。从图中可以看出相同的排序字段,不同的书写顺序,结果是不一样的,最左边的排序键值的权重高。

在文件中不是所有的文件字段键的分割符都是空格或者制表符,所以我们需要可以自行指定分隔符。

sort使用-t选项指定分隔符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值