ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

一行不解的awk代码

2021-02-05 10:01:18  阅读:207  来源: 互联网

标签:shell 不解 script quote 代码 echo awk printf


分享下面这个脚本(不是我写的, 我看到的). 这是awk非常入门的用法, 我awk水平也很低. 但对我来说, 这个写法却很聪明, 有新意.

下面这行是个完整的脚本, 用于进制转换

echo |awk "{printf(\"%$2\n\",$1)}"
  • 第一个问题是, echo的作用是什么? echo的作用是, 告诉awk, 不用等待输入了, 没有的, 因为它什么也没输出. 因此上面这个脚本也可以不要echo, 可以这么写awk "BEGIN {printf(\"%$2\n\",$1)}"
  • 第二个问题是, 这里$1$2显然是作为shell script的输入, 但这两个变量在awk中本身也有含义, 怎么回事? 原因很简单, 注意到一个细节, awk通常是用single quote, 这里用的却是double quote, 并不是想怎样都可以, 这里为了用shell script的参数, 必须用double quote, 这样才会发生变量展开. 因此在awk执行之前, 就已经被替换为参数了.

标签:shell,不解,script,quote,代码,echo,awk,printf
来源: https://www.cnblogs.com/Tokubara/p/14376172.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有