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

Awk读逗号分隔并带有空字段的文本

    来源: 互联网  发布时间:2017-05-27

    本文导语:  A.txt的内容 11,123,,A,2014 Shell内容 awk -F“,”  '{print $1,$2,$3,$4,$5}' A.txt | while read value1 value2 value3 value4 value5 do echo "a=${value1}" echo "b=${value2}" echo "c=${value3}" echo "d=${value4}" echo "e=${value5}" Done 运行后发现 ...

A.txt的内容
11,123,,A,2014
Shell内容
awk -F“,”  '{print $1,$2,$3,$4,$5}' A.txt | while read value1 value2 value3 value4 value5
do
echo "a=${value1}"
echo "b=${value2}"
echo "c=${value3}"
echo "d=${value4}"
echo "e=${value5}"
Done
运行后发现
c=A
d=2014
e=空
求大神帮忙,让它们各归其位!第一次发帖,大家帮帮忙吧,搞IT的孕妈不容易呀

|
直接
cat a.txt | while IFS=","  read  value1 value2 value3 value4 value5
do
echo "a=${value1}"
echo "b=${value2}"
echo "c=${value3}"
echo "d=${value4}"
echo "e=${value5}"
done
就可以了吧

|

提供一个解决方法,可以用,就是代码略别扭
#!/sbin/bash
#awk -F"," '{print $1,","$2,","$3,","$4,","$5}' a.txt
awk -F"," '{print $1,","$2,","$3,","$4,","$5}' a.txt | while IFS=","  read  value1 value2 value3 value4 value5
do
echo "a=${value1}"
echo "b=${value2}"
echo "c=${value3}"
echo "d=${value4}"
echo "e=${value5}"
done

|
楼主你看下这句awk -F“,”  '{print $1,$2,$3,$4,$5}' A.txt的输出,单独执行,结果是11 123  A 2014。
明白了吧,在a.txt中,你的分隔符是,所有能识别空,但是你awk里print命令把输出结果用空格进行分割。
然后awk的结果管道传到read时,read不管你是一个空格还是多个空格,都忽略了。所以空值无法识别了。
至于解决方案,我在思考下,刚入门

|
$ echo "11,123, ,A,2014" | while IFS=","  read  value1 value2 value3 value4 value5
> do
> echo "a=${value1}"
> echo "b=${value2}"
> echo "c=${value3}"
> echo "d=${value4}"
> echo "e=${value5}"
> done
a=11
b=123
c= 
d=A
e=2014

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












  • 相关文章推荐
  • 冰天雪地跪求:awk如何使用“||”做分隔符,灰常灰常感谢
  • awk里可以嵌套awk吗?
  • 怎样让awk输出到中途退出awk?
  • 运行awk脚本文件碰到:-bash:student_tot.awk:command not found
  • 关于awk提取文本时的一个输出结果显示问题
  • awk能改变变量的值么?
  • 关于awk的一点问题
  • awk程序中使用shell的变量
  • 新手请教一段AWK代码,报错。
  • awk如何删除一个文件?
  • shell 以及 awk高手来帮我解决这个问题,谢谢
  • awk在shell script中
  • awk 匹配字符串
  • NOSQL iis7站长之家
  • awk参数中文件名是变量的情况
  • awk中如何带入变量
  • shell awk之后对某一列进行求和
  • AWK
  • awk中如何读取shell变量?
  • 用awk如何在当前目录下所有文件中搜索字符串
  • 问一个关于shell中awk的使用


  • 站内导航:


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

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3