插入空格以分隔数据库

Gre*_*Rov 0 database unix awk sed

早上好,我有以下几套,但有更多信息:

215 22221121110110110101 
212 22221121110110110101  
468 22221121110110110101
1200 22221121110110110101 
400 22221121110110110101 
100 22221121110110110101 
200 22221121110110110101
Run Code Online (Sandbox Code Playgroud)

我需要以这种方式将它分成列:

215 2 2 2 2 1 1 2 1 1 1 0 1 1 0 1 1 0 1 0 1 
212 2 2 2 2 1 1 2 1 1 1 0 1 1 0 1 1 0 1 0 1 
468 2 2 2 2 1 1 2 1 1 1 0 1 1 0 1 1 0 1 0 1
1200 2 2 2 2 1 1 2 1 1 1 0 1 1 0 1 1 0 1 0 1
400 2 2 2 2 1 1 2 1 1 1 0 1 1 0 1 1 0 1 0 1
100 2 2 2 2 1 1 2 1 1 1 0 1 1 0 1 1 0 1 0 1
200 2 2 2 2 1 1 2 1 1 1 0 1 1 0 1 1 0 1 0 1
Run Code Online (Sandbox Code Playgroud)

我尝试使用简单的sed,但不起作用

sed -i -e's ///g'

cho*_*oba 5

Perl救援!

perl -lane 'push @F, split //, pop @F; print "@F"'
Run Code Online (Sandbox Code Playgroud)
  • -n 逐行读取输入
  • -l 从输入中删除换行符并将其添加回输出
  • -a 将空格上的每一行拆分为@F数组
  • pop删除数组的最后一个元素并返回它,在这种情况下,它返回第二个"单词"
  • split将字符串转换为列表,//并将字符串拆分为单个字符
  • push是双重的pop,它将元素添加到数组的末尾(在这种情况下,它将单个字符添加到当前仅包含第一列的数组中)
  • 当用双引号打印数组时,默认情况下,成员用空格分隔.

  • 好的,也可以使用`perl -lane'打印连接"",$ F [0],拆分//,$ F [1]'` (2认同)