ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 系统运维 >> 如何使用 awk 和正则表达式过滤文本或文件中的字符串

如何使用 awk 和正则表达式过滤文本或文件中的字符串(1/5)

来源:网络整理     时间:2016-07-19     关键词:

本篇文章主要介绍了" 如何使用 awk 和正则表达式过滤文本或文件中的字符串",主要涉及到方面的内容,对于系统运维感兴趣的同学可以参考一下: 当我们在 Unix/Linux 下使用特定的命令从字符串或文件中读取或编辑文本时,我们经常需要过滤输出以得到感兴趣的部分。这时正则表达式就派上用场了。什么是正则...

当我们在 Unix/Linux 下使用特定的命令从字符串或文件中读取或编辑文本时,我们经常需要过滤输出以得到感兴趣的部分。这时正则表达式就派上用场了。

什么是正则表达式?

正则表达式可以定义为代表若干个字符序列的字符串。它最重要的功能之一就是它允许你过滤一条命令或一个文件的输出、编辑文本或配置文件的一部分等等。

正则表达式的特点

正则表达式由以下内容组合而成:
普通字符,例如空格、下划线、A-Z、a-z、0-9。
可以扩展为普通字符的元字符,它们包括:
(.)
它匹配除了换行符外的任何单个字符。
(*)
它匹配零个或多个在其之前紧挨着的字符。
[ character(s) ]
它匹配任何由其中的字符/字符集指定的字符,你可以使用连字符(-)代表字符区间,例如 [a-f]、[1-5]等。
^
它匹配文件中一行的开头。
$
它匹配文件中一行的结尾。
\
这是一个转义字符。
你必须使用类似 awk 这样的文本过滤工具来过滤文本。你还可以把 awk 自身当作一个编程语言。但由于这个指南的适用范围是关于使用 awk 的,我会按照一个简单的命令行过滤工具来介绍它。
awk 的一般语法如下:
# awk 'script' filename

此处
'script'
是一个由 awk 可以理解并应用于 filename 的命令集合。
它通过读取文件中的给定行,复制该行的内容并在该行上执行脚本的方式工作。这个过程会在该文件中的所有行上重复。
该脚本
'script'
中内容的格式是
'/pattern/ action'
,其中
pattern
是一个正则表达式,而
action
是当 awk 在该行中找到此模式时应当执行的动作。

如何在 Linux 中使用 awk 过滤工具

在下面的例子中,我们将聚焦于之前讨论过的元字符。

一个使用 awk 的简单示例:

下面的例子打印文件 /etc/hosts 中的所有行,因为没有指定任何的模式。
# awk '//{print}' /etc/hosts

 如何使用 awk 和正则表达式过滤文本或文件中的字符串
awk 打印文件中的所有行

结合模式使用 awk

相关图片

相关文章