系统基础-字符处理

Linux 字符处理

管道

Linux 中的管道,它是一个固定大小的缓冲区域,该缓冲区的大小为1页,即4字节。

管道是一种两个进程间进行单向通信的机制。因为管道传递数据的单向性,管道又成为半双工管道。管道的这一特点决定了其使用的局限。

本质上,管道也是文件,存储在内存中。

管道的两个特点

  • 数据只能由一个进程流向另一个进程(其中一个读管道,一个写管道)。如果要进行双工通信,需要建立两个管道。
  • 管道只能用于父子进程或者兄弟进程通信。也就是说管道只能用于具有亲缘关系的进程间通信。

管道的不足

  • 没有名字
  • 缓冲区大小受限
  • 传输的是无格式的字节流,需要事先约定好数据格式

管道间的通信

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

管道命令

管道命令操作符是|,它只能处理经过前面一个指令传出的正确输出信息,对错误信息没有直接处理能力。然后,传递给下一个命令,作为标准输入。

系统基础-字符处理_第1张图片
image

说了那么多,看图就明白了。

cat FileName | more
系统基础-字符处理_第2张图片
image

使用 grep 搜索文本

什么是 grep

grep 是 Linux 下非常强大的基于行的文本搜索工具。

grep 有什么用

使用该工具时,如果匹配到相关信息就会打印出符合条件的所有行。

grep 常用参数

参数 含义
i 不区分大小写
c 统计包含匹配的行数
n 输出行号
v 反向匹配

实例

在日志中查找错误信息

image

也可以使用管道的方式达到效果

image

使用 sort 排序

sort [-ntkr] FileName

作用就是对字符进行排序。

参数

参数 作用
n 采取数字排序
t 指定分隔符
k 指定第几列
r 反向排序
系统基础-字符处理_第3张图片
image

以冒号为分隔符,选择列按数字进行排列

系统基础-字符处理_第4张图片
image

使用 uniq 删除重复内容

uniq [-ic]

如果文件(或标准输出)中有多行完全相同的内容,我们希望能够删除或者统计重复的行,我们就可以使用这条命令。

参数

参数|含义
i|忽略大小行
c|统计重复行

实例

如果相同的行非连续,则 uniq 命令不具备删除效果。所以一般搭配sort命令使用。

image

使用 cut 截取文本

cut -f Col -d Delimit

可以在一行文本中,选取用户所需的文本,并能以分隔符分隔

实例

打印出系统中所有的用户

系统基础-字符处理_第5张图片
image

使用 tr 做文本转换

tr 命令主要用于文本转换和删除。

实例

系统基础-字符处理_第6张图片
image

使用 paste 做文本合并

paste的作用在于将文件按照行进行合并,中间使用 tab 隔开。

实例

系统基础-字符处理_第7张图片
image

你可能感兴趣的:(系统基础-字符处理)