在所有行中没有模式匹配(sed或awk)的特定列中插入空格?

时间:2014-02-14 16:42:27

标签: bash sed awk

我有一个特定列宽(250个字符)的文件,我需要在列138和139之间插入一个空格。但在这种情况下,我没有要匹配的模式或要使用的分隔符。

有没有办法使用sed和/或awk在这些列之间插入空格而不匹配任何模式或使用任何分隔符?

3 个答案:

答案 0 :(得分:1)

您可以像这样使用sed:

sed -i.bak -r '/^.{250}$/s/^(.{138})/\1 /' file

答案 1 :(得分:1)

gawk有FIELDWIDTHS,您可以使用:

awk -v FIELDWIDTHS="138 112" '{print $1,$2}' file

答案 2 :(得分:1)

sed "s/.\{138\}/& /"

应该是最简单的