拆分特定列

use*_*360 1 bash shell awk sed

我有这种recrods:

1 2 12345
2 4 98231
...
Run Code Online (Sandbox Code Playgroud)

我需要将第三列拆分为子列以获得此值(例如,用单空格分隔):

1 2 1 2 3 4 5
2 4 9 8 2 3 1
Run Code Online (Sandbox Code Playgroud)

任何人都可以在sed,awk等中为我提供一个很好的解决方案吗?谢谢!

编辑:原始第三列的大小可能会按记录变化.

Joh*_*web 6

AWK

% echo '1 2 12345
2 4 98231
...' | awk '{
    gsub(/./, "& ", $3)
    print
}
'
1 2 1 2 3 4 5
2 4 9 8 2 3 1
...
Run Code Online (Sandbox Code Playgroud)

[使用GNU Awk 3.1.7测试]

这将获取/./第三列()中的每个字符(),$3并在打印整行之前将gsub()其替换为(),然后替换为space("& ").