可以通过命令行向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. .gitignore 存放位置

    放在仓库根目录下即可.比如你的仓库在“D:\MYREPO”,位置就是“D:\MYREPO\.gitignore”. 模板可从GITHUB上COPY一份.

  2. Windows Server 2008 R2 3389端口更改

    Windows Server 2008 R2 3389端口更改 2016-04-28 23:08 4734人阅读 评论(0) 收藏 举报  分类: Windows(61)  版权声明:本文为博主原创文 ...

  3. 编程中检查IIS7组件的安装情况

    http://learn.iis.net/page.aspx/135/discover-installed-components/说明:ASP.NET网络应用程序在IIS7上部署的时候,经常会要求预装 ...

  4. $(function(){}) ,$(document).ready(function(){}),window.onload = function(){...},$(window).load(function(){...})区别

    1. 写法:      $(function(){}) ,$(document).ready(function(){})是一样的 2. 时间: window.onload和$(window).load ...

  5. springMVC学习(10)-上传图片

    需求:在修改商品页面,添加上传商品图片功能. SpringMVC中对多部件类型解析: 1)springmvc中配置: <!-- 文件上传 --> <bean id="mul ...

  6. nginx 限流配置

    上配置 http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr ...

  7. C# 控制台程序(Console Application )启动后隐藏

    背景 前段时间给项目编写了数据适配器,读取其他系统的数据后推送到MQ上,我们的系统通过订阅MQ的方式来获取.由于其他系统支持C#编程,且为了一时方便,选择了C#的控制台程序. 最近用户在使用中,总是不 ...

  8. sorted()&enumerate()

    d = {1:2,3:1,44:5,4:5,7:8}l = d.items() #转换为列表print(l)  # dict_items([(1, 2), (3, 1), (44, 5), (4, 5 ...

  9. ICML论文|阿尔法狗CTO讲座: AI如何用新型强化学习玩转围棋扑克游戏

    今年8月,Demis Hassabis等人工智能技术先驱们将来到雷锋网“人工智能与机器人创新大会”.在此,我们为大家分享David Silver的论文<不完美信息游戏中的深度强化学习自我对战&g ...

  10. JavaScript中‘==’和'==='的区别

    javascript中,两个等号‘==’和三个等号‘===’的区别: 简单说,‘===’比‘==’对相等的概念更为严格,使用‘==’时,数字 1 和 字符串 “1” 是相等的: 而使用‘===’时,数 ...