linux_awk(二)

综述

每个程序都是一个或多个模式动作序列。每个模式一次匹配文本的每一行。直到输入完毕。
都是用 shell 后有{}号,awk一般不使用{}号。

语法

使用 模式-动作 语句
ex:

awk ' $3 > 0 {print $1 $2 $3} {FS= " "} ' awk1.txt
  • awk 指明使用的是awk程序
  • awk1.txt 对awk1.txt文本进行操作
  • ‘xxxx’ 模式动作模块
  • $3 > 0模式。利用该模式扫一遍所有的行。
  • {print xxx} 动作。对符合条件的进行动作。
  • {FS} 指定内建变量

主要分成四部分:

  • awk命令
  • 操作的文本:可以有多个
  • 模式:可以没有
  • 动作:放在{}里
    模式-动作部分被’ ‘单引号包围,可以方便的放在shell中使用。
    在awk中可以指定分隔符(默认是空格)
// 指定singla为默认分隔符
awk -F singal {xx}

模式

用来选择符合要求的行。也可以没有模式,只有动作。
通过列来选择行。
nn1 0表示所有的行

// 选择第三列值>3的所有行
$3>0      
// 选择所有内容 
$0
// == 选择指定内容的
$1 = "Mark"
// 使用与或非等逻辑运算
$1 == "Mark" || $1 == "Mary"
!($3>0)  

动作

print

在print中可以进行数据运算,添加打印内容,添加空格等操作

// 打印所有内容
print $0
// 打印第n列
print $n
// 打印字段的个数(number of field)
print NF
> print NF $1
> 3xxxx
// 打印最后一个字段
print $(NF-1)
// 打印行号(number of row)
print NR $0
> print NR $1
> 1 xx
// 输出排序后的内容
print $2 | sort -n

ifelse

运算符:

>
<
==
>=
!=
||
&&

内建变量

$0 所有内容
$N 第N列
FS    输入字段(列)分隔符。指定输入字段的分隔符
NF   当前字段的个数(列数)
NR   添加行号
FNR 每个文件各自的行号
RS   输入的记录(行)分隔符
OFS 输出字段分隔符
ORS输出记录分隔符

拆分文件

awk 'NR!=1 {print  $n> "输出文件名"}' file
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值