加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

将列添加到制表符分隔文件的中间(sed / awk / whatever)

发布时间:2020-12-14 01:49:09 所属栏目:Linux 来源:网络整理
导读:我正在尝试将一个列(内容为“0”)添加到预先存在的制表符分隔文本文件的中间.我想sed或awk会做我想要的.我已经在网上看过各种各样的解决方案,但这些解决方案的解释不够简单! 我目前有这样的内容: Affx-11749850 1 555296 CC 我需要这个内容 Affx-11749850
我正在尝试将一个列(内容为“0”)添加到预先存在的制表符分隔文本文件的中间.我想sed或awk会做我想要的.我已经在网上看过各种各样的解决方案,但这些解决方案的解释不够简单!

我目前有这样的内容:

Affx-11749850   1       555296  CC

我需要这个内容

Affx-11749850   1   0   555296  CC

使用命令awk'{$3 = 0} 1’filename会弄乱我的格式并用0替换第3列,而不是添加第3列为0.

任何帮助(有解释!)所以我可以解决这个问题,以及未来类似的问题,非常感谢.

解决方法

使用隐式{print}规则并将0附加到第二列:

awk '$2 = $2 FS "0"' file

或者使用sed,假设单个空格分隔符:

sed 's/ / 0 /2' file

或perl:

perl -lane '$,= " "; $F[1] .= " 0"; print @F'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读