linux文本处理一


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

cat

cat的基本用法如下:

\

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

<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KCi1BINGhz+7P1Mq+yKuyv7XE19a3+6Gj1NrKudPDY2F0z9TKvmNhdFRlc3QudHh0yrGjrMSsyM/Kx7K7z9TKvszYyuK/2NbG19a3+6GjyOfJz828z9TKvsHLsPzAqMeww+a1xNbGse3Ou15Jus212tK70NDEqc6ytcTQ0M6yt/skLW4gINGhz9/OqsO/0NDM7bzT0NC6xQrU2mxpbnV41tDT0LrctuC/2NbGt/u6xaOsyOfPws28y/nKvqO6CjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20150407/20150407093618868.jpg" alt="\">
注:上表中的^K都可以使用Ctrl+K按键来实现。 针对^M:DOS(windows系统)使用的换行为^M^J(回车+换行),称为CR与LF,在linux下只有LF(^J/换行)这个换行符号。在使用ssh向服务器传递windows下的文件时,文件中每行的结尾会出现一个^M,这样会在进行文件操作是出现错误,所以需要将^M删除,有两种方法: 将windows文件转换为unix文件,即dos2unix file直接使用文本命令删除^M
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选项指定分隔符。

相关内容