9.1 shell文本处理

通常shell脚本最大的用途就在于解析和显示文本文件中的数据,比如日志文件和错误文件。

Linux环境包含了两个非常有用的工具:sed和gawk,两者都能够在shell脚本中处理文本数据。

1.sed编辑器

sed编辑器被称为流编辑器(stream editor),和普通的交互式文本编辑器恰好相反。

  • 在交互式文本编辑器中(如vim),可以用键盘命令来交互式地插入、删除或替换数据中的文本。
  • 流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。

sed编辑器可以根据命令来处理数据流中的数据,这些命令可以从命令行中输入,也可以存储在一个命令文本文件中。

sed编辑器会执行下列操作:

  1. 一次从输入中读取一行数据;
  2. 根据所提供的编辑器命令匹配数据;
  3. 按照命令修改流中的数据;
  4. 将新的数据输出到STDOUT;

在流编辑器将所有命令与一行数据匹配完毕后,它会读取下一行数据并重复这个过程。在流编辑器处理完流中的所有数据行后,它就会终止。

由于命令是按照顺序逐行给出的,sed编辑器只需对数据流进行一遍处理就可以完成编辑操作。这使得sed编辑器要比交互式编辑器快得多,可以快速完成对数据的自动修改。

sed命令格式如下:

sed options script file

options允许修改sed命令的行为,可使用的选项如下:

选项

描述

1

-e script

在处理输入时,将script中指定的命令添加到已有的命令中

2

-f file

在处理输入时,将file中指定的命令添加到已有的命令中

3

你可能感兴趣的:(Linux,Shell的学习,linux,vim)