Linux常用命令之管道/wc

8、管道命令

“ | ”,竖线符号代表的就是管道符
管道是一种两个进程间进行单向通信的机制。因为管道传递数据的单向性,所以又称为半双工管道。
介绍:

  • 管道可以根据一组命令按照数据流向的方式来进行操作。简单的说,第一个命令执行后,不回显结果,而是把结果通过管道传递给第二个命令,第二个命令处理后再传给第三个….直到没有管道符后才终止命令,并回显最终结果。
  • 管道可以把不同的命令组合成强大的指令集合。比如,对文件夹下所有的txt结尾的文件重命名,就需要三个管道符号,四个命令完成。

缺点:

  1. 数据只能从一个进程流向另一个进程(其中一个读管道,一个写管道)。如果要进行双工通信,需要建立两个管道。
  2. 管道只能用于父子进程或兄弟进程间通信,也就是说管道只能用于具有亲缘关系的进程间通信。
  3. 管道所传输的是无格式的字节流。

通过管道通信的两个进程,一个进程向管道写数据,另一个从中读数据。写入的数据每次都添加到管道缓冲区的末尾,读数据的时候都是冲缓冲区的头部读出数据的。

利用管道查看/root/install.log文件的内容并分页显示

[root@admin ~]# cat install.log | more

9、wc统计文件行数、字数、字节数并显示

语法:wc [-lwc] filename
选项与参数:

  • -l : 统计文本文件内容的行数
  • -w : 统计文本文件内容的字数。(一个字由空白、跳格或换行符分隔的字符串)
  • -c : 统计文本文件内容总的字节数
  • -m :统计文件的字符数。如果当前系统不支持多字节字符时,其将显示与-c参数相同结果。

现有一个a.txt文件,其内容如下:

[root@admin t2]# cat a.txt
adfasd
234123
adsftgrt
#通过管道命令使用wc命令统计/home/t2/a.txt文件行数、字数等
[root@admin /]# cat /home/t2/a.txt | wc
      3       3      23   
代表该文件内容有3个字符串323个字母

#直接使用wc查看该文件
[root@admin /]# wc /home/t2/a.txt
 3  3 23 /home/t2/a.txt   
比使用管道命令多显示了一个文件路劲及文件名

#修改一下文件a.txt
[root@admin t2]# cat a.txt
adfasd   this is last one
234123
adsftgrt

#统计文件的行数
[root@admin t2]# wc -l a.txt
3 a.txt      
统计行数时,实际统计的是换行符\n,所以存在空行也会算着一行

#统计文件a.txt的单词数,单词之间以空白字符为界定
[root@admin t2]# wc -w a.txt
7 a.txt

#统计文件a.txt文件的字节数
[root@admin t2]# wc -c a.txt
42 a.txt

你可能感兴趣的:(Linux,管道,wc,常用命令,文件,Linux)