awk

作者: Zee_李海海 | 来源:发表于2020-11-23 15:32 被阅读0次

字段和记录分隔符变量

变量 描述
FS 输入字段分隔符,默认是空格
OFS 输出字段分隔符 默认也是空格
RS 输入行分隔符,默认为换行符
ORS 输出行分隔符,默认为换行符
cat data.csv
data11,data12,data13,data14,data15
data21,data22,data23,data24,data25
data31,data32,data33,data34,data35
awk 'BEGIN{FS=",";OFS="_"} {print $1,$2}' data.csv |cat
data11_data12
data21_data22
data31_data32
#print命令会自动将OFS变量的值放置在输出中的每个字段间。通过设置OFS变量,可以在输出中使用任意字符串来分隔字段。

或者

awk -F "," '{print $1 "_" $2}' data.csv |cat
data11_data12
data21_data22
data31_data32

awk :-v使用方法(允许你在BEGIN代码之前设定变量)

cat test.csv
Rich Blum,team1,100,115,95
Barbara Blum,team1,110,115,100
Christine Bresnahan,team2,120,115,118
Tim Bresnahan,team2,125,112,116
vim test.sh
#!/bin/bash
for team in $(awk -F "," '{print $2}' test.csv |uniq)
do
awk -v i=$team 'BEGIN{FS=",";total=0}
{
if ($2==i)
{
total += $3+$4+$5 ;
}
}
END{
avg= total/6 ;
print "Total for " ,i, "is",total , ", the average is " , avg 
}' test.csv
done

awk: if 语句的使用

awk编程语言支持标准的if-then-else格式的if语句。你必须为if语句定义一个求值的条件,并将其用圆括号()括起来。如果条件求值为TRUE,紧跟在if语句后的语句会执行。如果条件求值为FALSE,这条语句就会被跳过。可以用这种格式:

if (condition)
  statement1
或者
if (condition) statement1

下面这个简单的例子演示了这种格式的。

cat data
10
5
13
50
34
awk '{if ($1 > 20) print $1}' data |cat
#并不复杂。如果需要在if语句中执行多条语句,就必须用花括号将它们括起来。
awk '{if ($1>20) {x= $1 * 2 ;print x}}' data |cat
awk '{if ($1 >20){x=$1 *2 ;print x} else {x=$1*5;print x}}' data |cat  # if -then -else 用法

awk: for 循环求每一行的值得和以及平均值

cat data5
130 120 135 123 896
160 113 140 145 543
145 170 215 567 124
awk '{total=0;for (i=1;i<=5;i++) {total += $i} print total}' data5 |cat  #求和
awk '{total=0;for (i=1;i<=5;i++) {total += $i} ; avg = total/5 ; print "Average is ",avg; print total}' data5 |cat  #求和、求均值

相关文章

  • 18-文本处理三剑客之awk

    本章内容 ◆ awk介绍◆ awk基本用法◆ awk变量◆ awk格式化◆ awk操作符◆ awk条件判断◆ aw...

  • 2017 09-04 AWK

    本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...

  • 【技术案例】跟老男孩学运维-awk项目案例

    一个awk数组应用案例 [TOC] 0.技术点: awk awk数组 awk判断 awk数组赋值 awk函数spl...

  • awk

    awk:报告生成器,格式化文本输出 内容: awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 a...

  • awk

    Linux System Environment awk功能 awk格式 awk 参数 一、awk截取列 二、显示...

  • 笔记-awk

    1.Awk基础介绍 2.awk语法格式 2.Awk工作原理 3.Awk内部变量 4.Awk格式输出 5.Awk模式...

  • awk用法详解

    awk 用法 awk ' pattern {action} ' 1、awk '/101/' file ...

  • Day64-shell编程_正则表达式_awk

    1.Awk基础介绍 2.Awk工作原理 3.Awk内部变量 4.Awk格式输出 5.Awk模式匹配 5.1符号 ...

  • linux-awk

    linux-awk awk基本结构 awk ‘BEGIN{ print “start”} pattern { co...

  • awk小说

    awk awk脚本的结构基本如下: awk ' BEGIN{ print "start" } patern { c...

网友评论

      本文标题:awk

      本文链接:https://www.haomeiwen.com/subject/gvkpmktx.html