当前位置:  技术问答>linux和unix

awk 命令 标准输出作为数据源问题

    来源: 互联网  发布时间:2017-03-30

    本文导语:  test.js 文件内容 viewport.js+touchXY.js+slider.js=temp/new.js define.js+common.js=temp/c.js config=$( cat build.config.ini | tr -d ' ' ) 命令:echo $config | awk 'NR==1{print $2}'   输出:define.js+common.js=temp/c.js         //@1 命令:awk 'N...

test.js 文件内容
viewport.js+touchXY.js+slider.js=temp/new.js
define.js+common.js=temp/c.js

config=$( cat build.config.ini | tr -d ' ' )

命令:echo $config | awk 'NR==1{print $2}'  
输出:define.js+common.js=temp/c.js         //@1

命令:awk 'NR==1{print $2}' build.config.ini  //@2
输出:空

为什么@2 正常输出为空 而@1确不行
标准输出作为数据源在这里面有什么问题吗? 很迷惑

先谢谢了

|


楼主试试 这两种方式print config有什么不同

echo $config
echo "$config"

结果可能比较意外吧,这个结果也可以解释楼主观察到的现象

这个和shell的word splitting或者field splitting有关系,在不带引号的情况下,相当于两个独立的参数, 中间多少个white space并没有关系

好比 ./myProgram a b 和 ./myProgram a           b 对于程序myProgram来说没有任何区别

贴上一段man bash供楼主参考

   Word Splitting
       The shell scans the results of parameter expansion, command substitution, and arithmetic expansion that did not occur within  double  quotes
       for word splitting.

       The  shell  treats  each character of IFS as a delimiter, and splits the results of the other expansions into words on these characters.  If
       IFS is unset, or its value is exactly , the default, then sequences of , , and  at  the  beginning
       and  end  of  the  results  of the previous expansions are ignored, and any sequence of IFS characters not at the beginning or end serves to
       delimit words.  If IFS has a value other than the default, then sequences of the whitespace characters space and  tab  are  ignored  at  the
       beginning  and  end of the word, as long as the whitespace character is in the value of IFS (an IFS whitespace character).  Any character in
       IFS that is not IFS whitespace, along with any adjacent IFS whitespace characters, delimits a field.  A sequence of IFS  whitespace  charac‐
       ters is also treated as a delimiter.  If the value of IFS is null, no word splitting occurs.

       Explicit  null arguments ("" or '') are retained.  Unquoted implicit null arguments, resulting from the expansion of parameters that have no
       values, are removed.  If a parameter with no value is expanded within double quotes, a null argument results and is retained.

       Note that if no expansion occurs, no splitting is performed.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • awk命令执行问题
  • sun机器中如何通过awk命令截取字符串??
  • linux下如何使用awk等命令处理 .ods 或 .xls 文件
  • 急问:一个关于awk命令的问题
  • super ssh awk三个命令组合的奇怪问题
  • awk统计文件中某关键词出现次数的命令
  • 请教sed awk的用法详解,有命令说明的链接也不错,谢谢了
  • 在awk中使用system系统命令
  • 求awk命令的一种用法(急)!!????
  • 如何用awk或命令让 a.txt 里的内容一行一行分开显示为html文件
  • 请问SHELL中有能根据模式直接抽取指定字段的内置命令吗?不能使用awk等工具的!
  • linux之awk命令的用法
  • 如何使用awk命令,打印除第一个域之外的其它域
  • awk命令、awk编程语言详细介绍和实例
  • awk里可以嵌套awk吗?
  • 请问一下AWK怎么样在一行文本中的第14个字段的最后面加一个空格符呢,不知道AWK的写法该怎么写,在线求教,谢谢了!!!
  • 运行awk脚本文件碰到:-bash:student_tot.awk:command not found
  • awk能改变变量的值么?
  • 关于awk的一点问题
  • awk程序中使用shell的变量
  • 新手请教一段AWK代码,报错。
  • awk如何删除一个文件?
  • shell 以及 awk高手来帮我解决这个问题,谢谢
  • awk在shell script中
  • awk 匹配字符串
  • awk 引用的问题
  • awk参数中文件名是变量的情况
  • awk中如何带入变量
  • shell awk之后对某一列进行求和
  • AWK
  • awk中如何读取shell变量?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,