1. 管道
在Linux中也存在着管道,它是一个固定大小的缓冲区,该缓冲区的大小为1页,即4K字节。管道是一种使用非常频繁的通信机制,我们可以用管道符“|”来连接进程,由管道连接起来的进程可以自动运行,如同有一个数据流一样,所以管道表现为输入输出重定向的一种方法,它可以把一个命令的输出内容当作下一个命令的输入内容,两个命令之间只需要使用管道符连接即可。
[root@localhost ~]# ls -l /etc/init.d | more
2. grep(常用)
为演示grep的用法,这里首先创建一个文件,文件名和文件内容如下:
[root@localhost ~]# cat tomAndJerry.txt
The cat’s name is Tom, what’s the mouse’s name?
The mouse’s NAME is Jerry
They are good friends
下面要找出含有name的行:
[root@localhost ~]# grep ‘name’ tomAndJerry.txt
The cat’s name is Tom, what’s the mouse’s name?
打印出含有name的行的行编号
[root@localhost ~]# grep -n ‘name’ tomAndJerry.txt
1:The cat’s name is Tom, what’s the mouse’s name?
由于grep区分大小写,所以虽然第二行中含有大写的NAME,但是也不会匹配到。如果希望忽略大小写,可以加上-i参数。
如果想知道文件中一共有多少包含name的行,可以使用下面的命令。注意到第二条命令和第一条命令只有一个参数的差别,但是输出的结果却是不一样的。了解了-i参数的作用就不难理解了,请读者自行区分以下两条命令的区别。
[root@localhost ~]# grep -c ‘name’ tomAndJerry.txt
1
[root@localhost ~]# grep -ci ‘name’ tomAndJerry.txt
2
find . -name “*.log” 在当前目录查找以 .log 结尾的文件。 “.” 代表当前目录
3. 使用sort排序
[root@localhost ~]# cat sort.txt | sort
a:4
b:3
c:2
d:1
e:5
f:11
4. 使用uniq删除重复内容
[root@localhost ~]# cat uniq.txt | uniq
abc
123
abc
123
[root@localhost ~]# cat uniq.txt | sort | uniq
123
abc
使用-c
参数就会在每行前面打印出该行重复的次数
[root@localhost ~]# cat uniq.txt | sort | uniq -c
2 123
2 abc