centos中awk传递变量的几种方式

2023-11-06

第一种方式:
echo | awk 'END{print var1,var2}' var1=1 var2=2
缺点:命令行参数的限制是他们在BEGIN过程中是不可用的,直到首行输入完成以后它们才可用。BEGIN是在首行输入前执行。如下:
echo | awk 'BEGIN{print n}' n=1 #打印不出来1

第二种方式:
echo | awk -v n=1 'BEGIN{print n}'

第三种方式:系统内置变量ARGV数组
echo | awk 'BEGIN{print ARGV[1]}' var1  var2
echo | awk 'BEGIN{print ARGV[2]}' var1  var2


#!/bin/bash
filename=$1
column_number=$2
 #第四种方式
#awk "{ total += \$${column_number}}END{print total}" "$filename"
#awk -v N=$column_number "{total += \$N}END{print total}" "$filename"

#第五种方式
export column_number
awkscript='{ total += $ENVIRON["column_number"] }END { print total }'
awk "$awkscript" "$filename"
exit 0


应用中的技巧:
nimei(){
monthD="31 28 31 30 31 30 31 31 30 31 30 31"

echo "$monthD" | awk '{ print $'"${1}"' }' 
}

month=4
days_in=$(nimei $month)
echo $days_in
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos中awk传递变量的几种方式 的相关文章

随机推荐

  • Spring Security Oauth2 认证(获取token/刷新token)流程(password模式)

    https blog csdn net bluuusea article details 80284458 1 本文介绍的认证流程范围 本文主要对从用户发起获取token的请求 oauth token 到请求结束返回token中间经过的几个
  • easypoi导出word换行处理

    内容包含换行符 n 导出word时换行符失效 会将换行符 n识别为空格 模板 导出结果 maven
  • Android获取当前时间与星期几 .

    public class DataString private static String mYear private static String mMonth private static String mDay private stat
  • js 判断数组元素是否存在重复项

    方法一 定义测试的数组 1个没有重复元素 1个有重复元素 var arr1 new Array 111 333 222 444 var arr2 new Array aa cc bb dd bb function checkSameElem
  • Java实现一个简单的图书管理系统(内有源码)

    简介 哈喽哈喽大家好啊 之前作者也是讲了Java不少的知识点了 为了巩固之前的知识点再为了让我们深入Java面向对象这一基本特性 就让我们完成一个图书管理系统的小项目吧 项目简介 通过管理员和普通用户的两种操作界面 利用其中的方法以及对象之
  • 光流法介绍

    光流场法的基本思想 在空间中 运动可以用运动场描述 而在一个图像平面上 物体的运动往往是通过图像序列中不同图像灰度分布的不同体现的 从而 空间中的运动场转移到图像上就表示为光流场 Optical Flow Field 光流场反映了图像上每一
  • 华为OD机试 - 字符串加密(Java)

    题目描述 给你一串未加密的字符串str 通过对字符串的每一个字母进行改变来实现加密 加密方式是在每一个字母str i 偏移特定数组元素a i 的量 数组a前三位已经赋值 a 0 1 a 1 2 a 2 4 当i gt 3时 数组元素a i
  • 关于问题【Run-Time Check Failure #2 - Stack around the variable 'data' was corrupted.】

    今天在用VS调代码的时候 会出现这个问题 经过查找以及DEBUG 最终发现是由于建立的数组下标溢出造成的 溢出的下标对应的数组的内容会出现乱码 分析 Run Time Check Failure 2 一般是栈被破坏 你的代码可能有缓冲区溢出
  • 靜下心来--重温正则表达式(二)

    在 靜下心来 重温正则表达式 一 这篇文章中 我们重点介绍了正则表达式的一些基础概念 以及在 String RegExp 的原型上涉及到正则表达式常用 4 个的方法 repalce match test exec 最后介绍了正则表达式的两种
  • 23个机器学习最佳入门项目(附源代码)

    导读 本文为你介绍23种机器学习项目创意 以获取有关该增长技术的真实经验 我们都知道 教科书上所学与实际操作还是有出入的 那关于机器学习有什么好的项目可以实操吗 我们为你推荐这篇文章 在本教程中 涵盖面向初学者 中级专家和专家的23种机器学
  • 个位移传感器数据的实时采集与处理(Matlab)

    个位移传感器数据的实时采集与处理 Matlab 概述 本文介绍如何使用Matlab对个位移传感器数据进行实时采集和处理 个位移传感器是一种常用的传感器 用于测量物体的微小位移 通过实时采集和处理传感器数据 我们可以获得有关物体运动和变形的有
  • Spring源码分析(十)依赖注入源码解析3:DefaultListableBeanFactory#doResolveDependency 真正开始解析依赖项

    4 2 真正开始解析依赖项 最核心方法 org springframework beans factory support DefaultListableBeanFactory doResolveDependency public Obje
  • filter()方法筛选出数组中满足条件的元素

    在开发中遇到对复杂数组中筛选出满足条件的数组元素 进行一下总结 语法 array filter function currentValue index arr thisValue 定义和用法 filter 方法创建一个新的数组 新数组中的元
  • 谷歌浏览器静态资源http请求被转为https请求

    加载图片这些静态资源的时候被转成https的 可能是浏览器的设置原因 谷歌浏览器左上角叹号 网站设置 不安全内改为允许
  • 综合架构备份服务

    备份服务器完成rsync守护进程模式搭建 rsync服务端配置步骤 第一个历程 下载安装软件 检查rsync软件是否安装 rpm qa grep rsync 这个是3 1 2 4版本的 可以重新下载一下 yum install rsync
  • TypeError: login() got an unexpected keyword argument 'userid'

    最近在做一个Django项目的时 采用了url伪静态的方式进行路由传参 由于学习资料中使用的Django的旧版本 而我使用的是Django2 然后找到Django2中路由参数传递的方式 urlpatterns path user
  • android刷机教程 华为,华为手机刷机教程(华为手机强制刷机步骤图文教程)

    刷机有风险 操作需谨慎 华为手机刷机升级前的准备工作 1 进行刷机升级之前 请备份您的用户数据 升级时确保电量超过50 2 因为是直接使用的官方recovery刷官方固件 所以不需要把手机解锁 3 此升级会清除用户数据请做好备份 以防数据丢
  • QT基础2--常用控件

    代码1 mainwindow h ifndef MAINWINDOW H define MAINWINDOW H include
  • yolov5训练结果解析

    yolov5训练结果的文件解析 1 weights训练好的模型 一般使用best pt去进行推理 2 confusion matrix png 混淆矩阵以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总 其中矩
  • centos中awk传递变量的几种方式

    第一种方式 echo awk END print var1 var2 var1 1 var2 2 缺点 命令行参数的限制是他们在BEGIN过程中是不可用的 直到首行输入完成以后它们才可用 BEGIN是在首行输入前执行 如下 echo awk