shell - 在unix中将最后一列分成两半
问题描述
我需要将最后一列拆分为两个单独的列并删除其中的一部分。
目前最后一列中的所有值都有 6 个数字。我需要将它们分成两个单独的列。第一列应该有前三个数字,第二列应该有接下来的三个数字。
我最终想删除新创建的第二列。
Data -
ID c1 c2 c3 c4 c5
12 A XY 123 456 657098
应按如下方式创建新文件 -
Data 2
ID c1 c2 c3 c4 c5
12 A XY 123 456 657
谢谢
解决方案
您可以使用它awk
来检查每一行的最后一列的长度:
awk 'length($NF) == 6 { $NF = substr($NF, 1, 3) } 1' file
Data -
ID c1 c2 c3 c4 c5
12 A XY 123 456 657
推荐阅读
- r - 为什么在 R 中使用 SMOTE 时会出现“T[, col] <- data[, col] 中的错误”?
- python - 第 18 章:Python 自动 GUI
- android - 警报对话框不会显示在我的 onSwipe 方法中
- angular - 角度引导日期选择器不调用函数
- javascript - Laravel 6 带删除的多文件预览
- android-studio - android studio更新补丁在哪里下载的?
- python - 从文件 md5 和文件名中生成一致的 uuid,如哈希
- reactjs - 将 UI 组件双向绑定到可观察对象以减少渲染的最佳方法是什么?
- flutter - Flutter:如何将容器的高度调整为其连续兄弟的最大高度
- python - python中的'if'和'if not',循环搜索文本文件中的特定子字符串。两者有什么区别?什么时候用哪个?