11.2.5 【Linux】sed 工具

sed是一个管线命令,可以分析standard input,而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能。

            11.2.5 【Linux】sed 工具_第1张图片

以行为单位的新增/删除功能

11.2.5 【Linux】sed 工具_第2张图片

以行为单位的取代与显示功能

11.2.5 【Linux】sed 工具_第3张图片

11.3 延伸正则表达式

我们要去除空白行与行首为 # 的行列,使用的是

grep -v '^$' regular_express.txt | grep -v '^#'

需要使用到管线命令来搜寻两次!那么如果使用延伸型的正则表达式,我们可以简化为:

egrep -v '^$|^#' regular_express.txt

11.2.5 【Linux】sed 工具_第4张图片

以上就是延伸型的正则表达式的特殊字符。

11.4 文件的格式化与相关处理

11.4.1 格式化打印: printf

11.2.5 【Linux】sed 工具_第5张图片

11.4.2 awk:好用的数据处理工具

[dmtsai@study ~]$ awk '条件类型1{动作1} 条件类型2{动作2} ...' filename

awk 后面接两个单引号并加上大括号 {} 来设置想要对数据进行的处理动作。 awk 可以处理后续接的文件,也可以读取来自前个指令的 standard output 。 但如前面说的, awk 主要是处理“每一行的字段内的数据”,而默认的“字段的分隔符号为 "空白键" 或 "[tab]键" ”!举例来说,我们用 last 可以将登陆者的数据取出来,结果如下所示:

11.2.5 【Linux】sed 工具_第6张图片

若我想要取出帐号与登陆者的 IP ,且帐号与 IP 之间以 [tab] 隔开,则会变成这样:

11.2.5 【Linux】sed 工具_第7张图片

上表是 awk 最常使用的动作!通过 print 的功能将字段数据列出来!字段的分隔则以空白键或[tab] 按键来隔开。 因为不论哪一行我都要处理,因此,就不需要有 "条件类型" 的限制!

要注意,awk 后续的所有动作是以单引号“ ' ”括住的,由于单引号与双引号都必须是成对的, 所以, awk 的格式内容如果想要以 print 打印时,记得非变量的文字部分,包含上一小节 printf 提到的格式中,都需要使用双引号来定义出来!因为单引号已经是 awk 的指令固定用法了!

11.2.5 【Linux】sed 工具_第8张图片

awk 的逻辑运算字符

11.2.5 【Linux】sed 工具_第9张图片

值得注意的是那个“ == ”的符号,因为:

逻辑运算上面亦即所谓的大于、小于、等于等判断式上面,习惯上是以“ == ”来表示;

如果是直接给予一个值,例如变量设置时,就直接使用 = 而已。

你可能感兴趣的:(Linux,linux,运维,服务器)