linux 简单的过滤器

一、分页命令 pr

cat test | pr -t -n

-t 表示取消pr默认在页首页尾添加的空行

-n 添加行号 

注意:不能写成cat test | pr -nt ,这样写会屏蔽到-t的作用

 

二、显示头文件命令 head

head -5 test (使用通道的方式:cat test | head -5)

显示前5行

 

三、显示文件尾 tail

tail -5 test (使用通道的方式:cat test | tail -5)

显示最后5行

tail -c -5 test

显示最后5个字符(注意:head不行)

 

四、复制命令 tee

head -t test | tee shortfile

把前5行复制到文件shortfile中,并显示到屏幕上

 

五、垂直截取 cut

5.1 按列截取

cut -c 6 test  表示截取第六列

cut -c -6 test 首行到第六列

cut -c 6- test第55列到行尾

5.2 按字段截取

cut -d \| -f 2 test (或者可以这样写cut -d '|' -f 2 test)

-d \|  表示按|作为分隔符号,这里需要转义,所以要加\(如要按空格字符则 -d ' '即可)

-f 2 选取第二个字段

 

六、排序命令 sort

sort -t  '|' -k 2 test

以|为分隔符号 选取第二个关键字来升序

其他有用参数:

-u 删除重复行

-n 按数值大小排序

-r 降序

-f 不区分大小写

-o file把排序结果保存到文件file中

-k m1.n1,m2.n2r(排序先按第m1个字段的第n1列升序,再按第m2个字段的第n2列降序)

 

七、定位重复行和非重复行命令 uniq

sort test | uniq  先排序然后把重复项去掉

其他可选项:

-u 选取非重复项

-d 选取重复项

-c 统计数目,并在行首显示出来

注意:必须先对数据进行排序才能使用uniq

字符变换命令 tr

tr '|\'   '~-' < test  | head -3(或者 head -3 test | tr '|\'   '~-')

这里把|替换为~,把\替换为-

注意:两个表达式的长度必须相同,否则较长的表达式找不到对应的字符,

tr命令只接受标准输入,不能使用文件名作为参数,因此它的输入必须来自重定向文件或管道符

 

 

 

你可能感兴趣的:(linux过滤器)