01234000000000000000000+000000000000000000+02586000000000000000000+000000000000000000-12345000000000000000000+000000000000000000-12122000000000000000000+000000000000000000+
我想将上面的文件转换为:
01234,000000000000000000+,000000000000000000+02586,000000000000000000-12345,000000000000000000-12122,000000000000000000+
我想解决使用linux命令.
我尝试下面的命令,但它不工作:(
awk 'BEGIN{FIELDWIDTHS="5 19 19";OFS=",";}{=",,"}' data.txt
在ubuntu 14.04 LTS桌面 *** 作系统上执行上述命令,输出结果为空(空白).
解决方法 虽然您忘了{print},但您的尝试非常接近:awk 'BEGIN{FIELDWIDTHS="5 19 19";OFS=","}{=}1' file
{$1 = $1}将第一个字段分配给自己,这足以使awk“触摸”每个记录.我用过速记1,这是最短的真实情况.默认 *** 作是{print}.
请注意,FIELDWIDTHS是一个GNU awk扩展,因此如果您使用的是其他版本,则必须采用不同的方法.例如:
awk 'BEGIN{OFS=","}{print substr(,1,5),substr(,6,19),25)}' file总结
以上是内存溢出为你收集整理的如何在linux中处理具有固定宽度列的文件全部内容,希望文章能够帮你解决如何在linux中处理具有固定宽度列的文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)