shell学习7

一.流编辑器AWK

  • 用于对文件和数据进行处理,数据可以来自标准输入
  • 支持用户自定义函数和动态正则表达式
  • 其是逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并进行操作

命令的格式:

awk [参数] '命令' 输入的文件

1.AWK工作原理

AWK的工作流程:

  • 读输入文件之前执行的代码段(由BEGIN关键词标识)
  • 主循环执行输入文件的代码段
  • 读输入文件之后的代码段(由END关键词标识)

命令结构:

awk 'BEGIN{ 命令 } 模式 { 命令 } END{ 命令 }'

注意:
BEGIN和END都要大写;
在执行过程中只执行一次;
这两个结构可以有也可以没有;
在文件中写脚本也是这个格式,只是没有awk;

2.AWK参数

参数说明
-F fs指定输入文件折分隔符,fs可以是字符串或者是正则表达式
-v var=value赋值一个用户自定义变量
-f从脚本文件中读取awk命令

其中正则表达式是以~符号开始,/ /符号中是正则表达式

3.AWK变量

1.内置变量

变量描述
$n当前记录中是第n个字段,字段间由FS分割
$0完整的输入记录
FS字段分隔符(默认为空格)

外部变量:
使用外部变量参数需要使用到gsub关键词

var="bash"
# 当为双引号时
echo "unix script" | awk "gsub(/unix/,\"$var\")"

# 当为单引号时,需要将变量上的单引号用双引号包起来
echo "unix script" | awk 'gsub(/unix/,"'"$var"'")'

4.AWK条件语句和循环

1.if语句

# 只有一条命令时
if (条件)
	命令
##
if (条件)
	命令
else
	命令
	
# 有多个命令
if (条件)
{
	命令;
	命令;
	...
}

##
if (条件)
{
	命令;
	命令;
	...
}
else
{
	命令;
	命令;
	...
}

2.for循环

for ( ; ; )
{
	命令1
	命令2
	...
}

3.while循环

while(条件)
{
	命令1
	命令2
	...
}

搞钱的第十九天,加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值