可以通过命令行向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. debian的pdf阅读器

    www.foxitsoftware.cn下载deb包 或者 sudo apt-get install evince

  2. 【XMLHttpRequest】获取XMLHttpRequest

    // 获取http请求 function getXMLHttpRequest() { req = false; //本地XMLHttpRequest对象 if (window.XMLHttpReque ...

  3. ASP.NET Web Pages:文件

    ylbtech-.Net-ASP.NET Web Pages:文件 1.返回顶部 1. ASP.NET Web Pages - 文件 本章介绍有关使用文本文件的知识. 使用文本文件 在前面的章节中,我 ...

  4. 学习笔记之Jira

    Jira | Issue & Project Tracking Software | Atlassian https://www.atlassian.com/software/jira The ...

  5. git修改用户名和邮箱

    用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变. 每次commit都会用用户名和邮箱纪录. 1.查看用户名和地址 git config user.name git config us ...

  6. Spring mvc的web.xml配置详解

    1.spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name) 2.在web.xml配置监听器ContextLoaderListener(l ...

  7. mysql互为主从

    摘自:http://flash520.blog.163.com/blog/static/3441447520101029114016823/ A B 为两台MySQL服务器,均开启二进制日志,数据库版 ...

  8. GSO/TSO/GRO等对VirtIO虚机的网络性能影响分析(by quqi99)

    作者:张华  发表于:2016-04-05版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) IP层 ...

  9. 分割List为指定size

    背景 老项目,用的原生的JDBC,获取连接,预编译...然后业务需要要更新很多条数据,我就写了条件为 ——IN()... 根据传入的 list 的 size 循环的给sql语句拼接上“ ? ”为了之后 ...

  10. [Python] numpy.random.rand

    numpy.random.rand numpy.random.rand(d0, d1, ..., dn) Random values in a given shape. Create an array ...