Shellz中awk的简单用法

发布时间:2024年01月19日

大家好,今天给大家介绍Shellz中awk的简单用法,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取
在这里插入图片描述

其实shell脚本的功能常常被低估。在实际应用中awk sed 等用法可以为shell提供更为强大的功能。下面我们将一下awk调用的简单方法进行了总结。
方便同学们学习:
awk的简单用法:
第一种调用:

awk ‘BEGIN {print “start”;var=1} {print $1, $2} END{var=$3}’file

使用单引号括起awk的命令,{ }代表不同的动作中间的代码段(红色部分):在执行每一条记录时都会执行。
BEGIN 代表开始输入文件之前的操作
END 代表输入文件结束之后的操作
第二种调用方法:

awk -f test.awk file

test.awk文件的写法:

#! /usr/bin/awk –f
BEGIN {print “start”; var=1}
{ print $1, $2;
arg=$3; //可以用分号分开不同的操作。
print arg
}
END {printf(“the test is over\n”}

第三种调用方法:
给test.awk文件添加执行权限: chomd a+x test.awk
./test.awk file
参数和表达式使用:
1)
-F “:” 代表域的分割符是 冒号。
awk -F “:” ‘{print $1, $2}’ file
或者使用FS变量
awk ‘BEGIN{FS=”:”; var=2} {print $1, $2} ‘ file
2)支持 printf的格式化输出
awk -F “:” ‘{printf(“%d, %d\n”, $1, $2}’ file
3) $0代表所有的域
$1代表第一个域
系统变量 FILENAME代表当前文件名
系统变量 ARGC代表当前传入参数的个数
系统变量 ARGV代表当前传入参数的数组
系统变量 FS 代表字段分割符
系统变量 NF 代表当前记录的域数量
系统变量 NR 代表当前记录数
print NR;print NF;
4)支持if else 语句。

{
If ($2 >= 0)
{ print “$2 is >= 0;
print “$2 is greate 0}
else
{
print “$2 is < 0;
print “$2 is < 0}
}

5)可以在shell脚本中使用:
可以方便的将awk获得值赋值给一个变量。
(1)#!/bin/bash
var=grep -e “\” file |awk -F “:” ‘print $2’
echo $var
(2)#!/bin/bash
var= ./$1 $2
其中: $1 是带有执行权限的 test.awk文件
$2 时需要检索的文件file
运行: ./test.sh test.awk file
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
(点击找小助理领取)

在这里插入图片描述

文章来源:https://blog.csdn.net/D_ovis/article/details/135686948
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。