linux – AWK:打印“print $0”时保留格式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – AWK:打印“print $0”时保留格式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1212字,纯文字阅读大概需要2分钟。
内容图文
我试图使用AWK来操作两个文件.好吧,我实际上是在两者之间进行插值.由于我不太熟悉如何使用AWK同时处理两个文件,我首先进行粘贴
paste file_1 file_2 > mixed_file
每个文件都包含以下类型的行
2.02646E+12 ERR 7.39921E+09 EG = 67
1.82357E+12 ERR 7.01570E+09 EG = 68
8.65566E+11 ERR 4.35764E+09 EG = 69
新创建的文件’mixed_file’如下所示
2.02646E+12 ERR 7.39921E+09 EG = 67 2.02646E+12 ERR 7.39921E+09 EG = 67
1.82357E+12 ERR 7.01570E+09 EG = 68 1.82357E+12 ERR 7.01570E+09 EG = 68
8.65566E+11 ERR 4.35764E+09 EG = 69 8.65566E+11 ERR 4.35764E+09 EG = 69
这是我的问题:当我尝试做类似的事情
awk ' / EG = / {$1=0.5*($1+$7)} {print $0} ' mixed_file
我的格式完全错了
2026460000000 ERR 7.39921E+09 EG = 67 2.02646E+12 ERR 7.39921E+09 EG = 67
1823570000000 ERR 7.01570E+09 EG = 68 1.82357E+12 ERR 7.01570E+09 EG = 68
865566000000 ERR 4.35764E+09 EG = 69 8.65566E+11 ERR 4.35764E+09 EG = 69
我认为1美元的变化很可能是因为浮动字符与字符混合.原则上可以通过使用“printf”明确定义格式并避免这个问题,但我想更优雅的解决方案存在.
AWK专家,非常感谢您的帮助,
谢谢
亚历克斯
解决方法:
重新分配回$0就是你所追求的:
awk '/ EG = / {$0 = sprintf(" %7.5E%s", 0.5*($1+$7), substr($0,13))} 1' mixed_file
内容总结
以上是互联网集市为您收集整理的linux – AWK:打印“print $0”时保留格式全部内容,希望文章能够帮你解决linux – AWK:打印“print $0”时保留格式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。