可以通过命令行向awk中传递参数。

这样子传递进去的参数,在awk命令中可以访问。每一项都必须作为单一的一个参数来解释。所以,等号之间不能有空格。

比如说我们传递进去一个学生名字,想查这个学生的得分。

看例子:

  1. zoer@ubuntu:~$ cat data
  2. naughty 500
  3. cc 400
  4. zoer 100
  5. zoer@ubuntu:~$ awk -f a name=naughty data
  6. 500

输入 学生姓名是naughty,那么awk命令查询到naughty的行,就输出成绩。

--------------------------------

当然也可以使用这种命令行参数指定系统变量,比如说指定FS

  1. zoer@ubuntu:~$ cat data
  2. naughty,500
  3. cc,400
  4. zoer,100
  5. zoer@ubuntu:~$ awk -f a FS=',' name=naughty data
  6. 500

注意:

命令行参数的一个很重要的限制是:

他们在BEGIN过程中是用不到的。也就是说,直到首行输入完成以后,他们才可用。

但是,可以通过增加一个-v参数让awk在执行BEGIN之前得到变量的值。命令行中每一个指定的变量都需要一个-v参数。

比如下例子:

  1. zoer@ubuntu:~$ awk -v name=ddd 'BEGIN{print name}{print $0}' data
  2. ddd
  3. naughty,500
  4. cc,400
  5. zoer,100

使用了-v。传入的参数是name=ddd。在BEGIN中也打印出来了。如果不使用-v,结果如下:

  1. zoer@ubuntu:~$ awk name=ddd 'BEGIN{print name}{print $0}' data
  2. awk: cmd. line:1: fatal: cannot open file `BEGIN{print name}{print $0}' for reading (No such file or directory)

-----------------------------------

文章最后用例子来证明每个传入的变量都需要-v参数。

  1. zoer@ubuntu:~$ awk -v name=ddd -v age=33 'BEGIN{print name;print age;}{print $0}' data
  2. ddd
  3. 33
  4. naughty,500
  5. cc,400
  6. zoer,100
  7. zoer@ubuntu:~$ awk -v name=ddd age=33 'BEGIN{print name;print age;}{print $0}' data
  8. awk: cmd. line:1: fatal: cannot open file `BEGIN{print name;print age;}{print $0}' for reading (No such file or directory)

linux下面得小数计算的更多相关文章

  1. shell的数值计算,小数计算

    shell脚本中,可以进行数值计算, 如加减乘除,通过expr.let.(())等完成,文章介绍:http://blog.csdn.net/longshenlmj/article/details/14 ...

  2. Java编程的逻辑 (5) - 小数计算为什么会出错?

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  3. 【Java】使用BigDecimal类进行精确小数计算

    在商业计算中(尤其是计算价格)需要使用BigDecimal类来进行精确小数计算,因为用其他类型计算(如double)得到的结果不是精确的! 写个测试类. import org.junit.Test; ...

  4. java用double和float进行小数计算精度不准确

    java用double和float进行小数计算精度不准确 大多数情况下,使用double和float计算的结果是准确的,但是在一些精度要求很高的系统中或者已知的小数计算得到的结果会不准确,这种问题是非 ...

  5. LINUX上一个命令计算PI

    Linux上一个命令计算PI – 笑遍世界 http://smilejay.com/2017/11/calculate-pi-with-linux-command/ [root@d1 goEcho]# ...

  6. YTU 2577: 小数计算——结构体

    2577: 小数计算--结构体 时间限制: 1 Sec  内存限制: 128 MB 提交: 978  解决: 647 题目描述 小数可以看成是一个点和两个数组成的,因此可以定义成一个小数的结构体,现在 ...

  7. [fw]Linux系统使用time计算命令执行的时间

    Linux系统使用time计算命令执行的时间 当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的.所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗.例 ...

  8. 0.1+0.2不等于0.3,微信小程序云开发如何解决JavaScript小数计算精度失准的问题

    先看图 这个是JavaScript语言自身存在的一个问题.说道这里不得不提一下网上流传的JavaScript搞笑图 我们在使用云开发来开发微信小程序的时候,会经常遇到JavaScript小数计算精度失 ...

  9. 【转】FPGA内部小数计算

    FPGA内部计算小数  [转载] 谓定点小数,就是小数点的位置是固定的.我们是要用整数来表示定点小数,由于小数点的位置是固定的,所以就没有必要储存它(如果储存了小数点的位置,那就是浮点数了).既然没有 ...

随机推荐

  1. MySQL的Join使用

    在MySQL(以5.1为例)中,表连接的语法可以参见MySQL官方手册:MySQL官方手册-JOIN 在查询中,连接的语法类似 SELECT select_expr FROM table_refere ...

  2. 【C#】教你纯手工用C#实现SSH协议作为GIT服务端

    SSH(Secure Shell)是一种工作在应用层和传输层上的安全协议,能在非安全通道上建立安全通道.提供身份认证.密钥更新.数据校验.通道复用等功能,同时具有良好的可扩展性.本文从SSH的架构开始 ...

  3. ubuntu 14.04 git clone 出现 fatal: Unable to find remote helper for 'https'

    当你编译安装git时因为没有安装(lib)curl-devel所以导致git clone 和 git push 都会出现这个错误 如果你安装了(lib)curl-devel,然后重新编译安装git就没 ...

  4. SpringCloud使用jpa之Rest方式

    这个与上一篇的基本相同,需要修改的只有Dao层的文件: TablesDao.java package com.shinho.dao; import org.springframework.data.j ...

  5. Zeroc Ice 3.6.1 生成 vs2015 c++ 版本库及相关配置

    背景: 目前发布的Ice最新版本为3.6.0,使用的vs2013编译的,vs2015版本正在开发,发布只是时间问题: 不过官方实在给力,github上的源码已经支持vs2015编译了.源码版本为3.6 ...

  6. Mac网络连接问题

    场景:同一个网络,其他电脑和手机可以访问远程网络端口为443的网站,如博客园,唯独我的电脑不能访问 解决方法:查看路由器的子网掩码和DNS地址,将IP设置为手动,输入ip.子网掩码和DNS即可

  7. 详解UE4静态库与动态库的导入与使用

    转自:http://blog.csdn.net/u012999985/article/details/71554628 一.基本内容概述   最近做项目时经常看到build.cs文件,就想研究一下UE ...

  8. Spark分析之TaskScheduler

    TaskScheduler概述: TaskScheduler是一个可插拔任务调度接口,通过不同的SchedulerBackend进行任务的调度.主要功能如下: 1.一个TaskScheduler只为一 ...

  9. elastisSearch-aggregations

    运行结果 统计每个学员的总成绩 这个是索引库使用通配符 优先在本地查询 只在本地节点中查询 只在指定id的节点里面进行查询 查询指定分片的数据 参考代码ESTestAggregation.java p ...

  10. js的sort(0实现数组的排序

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...