awk的应用及选项

awk

文本三剑客最后一个命令

grep 查

sed  增删改查  增和改

awk 按行取列

awk默认的分隔符:空格  或  tab键  ,多个空格自动压缩成一个

awk工作原理,根据指令信息,逐行的读取文本内容,然后按照条件进行格式化输出。

awk的选项:

-F :指定分隔符 默认就是空格

-v :变量赋值

内置变量:

$# :按行需要取出的第几个字段。

$0:打印所有,展示所有的文本内容(默认)

NR:需要处理的行号

NF:处理行的字段个数,$NF :当前行的最后一个字段

FS:FS和F是一样的,都是指定分隔符,-F: FS=“:”

OFS:指定输出内容的分隔符。

RS:行分隔符,可以根据RS的设置把文件内容切割成多个记录,也可以改变行的分隔符,默认是\n,回车,换行。

命令格式:

wak -F ‘操作符 {动作}’ 处理对象

-F 指定分隔符,如果是空格可以不加

动作:默认就是打印。

awk怎么使用文本过滤

awk ‘/root/{print}’  /etc/passwd

BEGIN 打印模式

awk  ’BEGIN{...};{...};END{...}'   +文件

BEGIN{...}表示预先条件,执行awk命令前的初始化操作

{...}处理条件,如何对初始值进行操作

END{...}处理完之后的操作,一般都是打印。

BEGIN{...}必要条件,{...},END{...}不是必要条件,是充分条件,可以不加

取幂运算

 awk 'BEGIN{print 2^3}'

-v 进行赋值

read -p "输入第一个数" a
read -p "输入第二个数" b
num=$(awk -v a="$a" -v b="$b" 'BEGIN{print a^b}')
echo $num

换一个分隔符

awk -v FS=":" -v OFS="==" '{print $1,$3}' /etc/passwd

RS指定分隔符换行

 awk -v RS=":" '{print $1}'

awk的三元表达式:**

**if**

**else语句**

**awk -F: 'num=($3>$4)?$3:$4;{print num,$0}'  /etc/passwd**

**?:if**

**:else**

**;fi**

**if ($3>$4)**

**echo $3**

**else**

**echo $4**

**fi

awk的精确筛选:

$n(> < = =)用于比较数值

$n~"字符串":该字段包含某个字符串

$n!~"字符串":该字段不包含某个字符串

$n=="字符串":该字段等于某个字符串

$n!="字符串":该字段不等于某个字符串

$NF 代表最后一个字段

awk -F: '$7~"bash" {print $1,$NF}' /etc/passwd

打印第七列包含bash这个字段的行,取的是行的第一列和最后一列,以:作为分隔符。

没有一个范围的表示方法,只能一个一个用逗号隔开。

 awk -F: '$7~"bash" {print $1,$2,$3}' /etc/passwd

取反

awk -F: '$7!~"bash" {print $1,$2}' /etc/passwd

$n=="字符串":该字段等于某个字符串

awk -F: '$7=="/bin/bash" {print $1,$2}' /etc/passwd

逻辑关系:

awk -F: '($1=="bmm1")&&($NF=="/bin/bash") {print $1,$NF}' /etc/passwd

awk -F: '($1=="dn")||($NF=="/bin/bash") {print $1,$NF}' /etc/passwd

curl是一个功能强大的命令

主要作用就是获取和发送数据

curl www.baidu.com

curl 192.168.124.10

获取网页内容并且输出

-O 下载文件到本地

-o 将文件下载到指定的路劲

-x 发送post请求

-i 可以获取web软件的版本(服务端没有隐藏版本号)

主要awk的应用

awk 按行去列

awk 的精确筛选

awk 的运算符

取小数点几位以及小数运算怎么取整数。

num=$(awk 'BEGIN{printf "%.2f" , 1.2222+2.222}')

统计/etc下文件的总大小?awk

ll /etc/ | awk '/-/{print sum+=$5} END{print "文件的总大小:"sum/1024"M"}'

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值