使用sed,在每行的最后3个索引处插入一个空格

时间:2019-04-25 10:56:35

标签: sed

我想在每行的倒数第3个字符之前插入一个空格,以使其变为

CC287999221

CHGFFDTTT34AAA387

CH654AZ0987XX277

为此:

CC287999 221

CHGFFDTTT34AAA 387

CH654AZ0987XX 277

到目前为止,我已经尝试过:

sed -i 's/.*\(...\)/ \1/' file

但是,这也会删除前面的文本。

谢谢

4 个答案:

答案 0 :(得分:3)

一种方法:

sed 's/\(...$\)/ \1/' file

仅匹配最后3个字符,同时代入空格和匹配的模式(\1

答案 1 :(得分:1)

请使用awk,请尝试以下操作。

awk '{print substr($0,1,length($0)-3),substr($0,length($0)-2)}' Input_file

答案 2 :(得分:0)

尝试使用gnu sed:

sed -E 's/\S{3}\s*$/ &/' file

答案 3 :(得分:0)

另一项awk建议:

awk '{sub(/.{3}$/," &")}1' file 
CC287999 221

CHGFFDTTT34AAA 387

CH654AZ0987XX 277