我正在尝试将一个列(内容为“0”)添加到预先存在的制表符分隔文本文件的中间。我想sed
或awk
会做我想做的事。我已经在网上看到了各种各样的解决方案,但这些解决方案的解释不够简单!
我目前有这样的内容:
Affx-11749850 1 555296 CC
我需要这个内容
Affx-11749850 1 0 555296 CC
使用命令awk '{$3=0}1'
filename会弄乱我的格式并用0替换第3列,而不是添加第3列,其中包含0。
任何帮助(有解释!)所以我可以解决这个问题,以及未来类似的问题,非常感谢。
答案 0 :(得分:10)
使用隐式{ print }
规则并将0
附加到第二列:
awk '$2 = $2 FS "0"' file
或者使用sed
,假设单个空格分隔符:
sed 's/ / 0 /2' file
或perl
:
perl -lane '$, = " "; $F[1] .= " 0"; print @F'
答案 1 :(得分:1)
awk '{$2=$2" "0; print }' your_file
测试如下:
> echo "Affx-11749850 1 555296 CC"|awk '{$2=$2" "0;print}'
Affx-11749850 1 0 555296 CC