unix - 更正表格中的置换列
问题描述
一点上下文:我在下面显示的文件是由 VLSI 工具生成的。它由电路中的各种组件引起的时序延迟组成。当我生成这个“计时文件”时,这些字段有时没有正确组织。
生成的文件:
something1 0.20 0.00 0.00
something2 6 12.95
something3 0.00 0.08 0.00 0.00 0.07
something4 6 8.70
something5 0.00 0.03 0.00 0.00 0.05
something6 5 4.70
我想要的是:
something1 0.20 0.00 0.00
something2 6 12.95
something3 0.00 0.08 0.00 0.00 0.07
something4 6 8.70
something5 0.00 0.03 0.00 0.00 0.05
something6 5 4.70
某物4 和某物6 的位移以特定顺序在整个表格中不断出现(比如每2 行或1 行)。只有 something2
一个不同的位移,而所有其他位移都跟随 something4
/ something6
。
到目前为止,我不知道如何进行此操作。有任何解决这个问题的方法吗?
解决方案
$ awk '{gsub(/ {6}/,","); gsub(/ +/,",")} 1' file | column -s, -t
something1 0.20 0.00 0.00
something2 6 12.95
something3 0.00 0.08 0.00 0.00 0.07
something4 6 8.70
something5 0.00 0.03 0.00 0.00 0.05
something6 5 4.70
或者:
$ awk 'BEGIN{FS=OFS="\t"} {gsub(/ {6}/,FS); gsub(/ +/,FS); $1=$1} 1' file
something1 0.20 0.00 0.00
something2 6 12.95
something3 0.00 0.08 0.00 0.00 0.07
something4 6 8.70
something5 0.00 0.03 0.00 0.00 0.05
something6 5 4.70
推荐阅读
- android - jsonBody 数组只有一个索引
- python-2.7 - 使用 python selenium 在 Firefox 中打开控制台
- arrays - 带有自定义 getter 的 Kotlin 属性数组
- file - 如何计算列中的行数,但在计算数据阶段时排除 NULL 值?
- javascript - 无法解析模块
- selenium - 如何在单页中访问 Bootstrap 下拉菜单中的元素(当单页中有多个 Bootstrap 时)
- c# - Xamarin Forms - 获取天蓝色表的行数
- python - for循环的奇怪行为
- c# - Unity 中的 Vector2 和 Vector3 是什么?
- reactjs - 警告:失败的道具类型:道具“to”在“链接”中标记为必需,但其值为“未定义”