在第二个字符之后插入一个空格,后跟每三个字符

Aar*_*rry 3 unix linux sed

我需要在两个字符后插入一个空格,然后在每三个字符后插入一个空格.

数据:

97100101101102101
Run Code Online (Sandbox Code Playgroud)

预期产出:

97 100 101 101 102 101
Run Code Online (Sandbox Code Playgroud)

试图代码:

sed 's/.\{2\}/& /3g'
Run Code Online (Sandbox Code Playgroud)

fed*_*qui 5

分两步:

$ sed -r -e 's/^.{2}/& /' -e 's/[^ ]{3}/& /g' <<< 97100101101102101
97 100 101 101 102 101 
Run Code Online (Sandbox Code Playgroud)

那是:

  • 's/^.{2}/& /'
    抓住线上的前两个字符,然后用空格打印出来.

  • 's/[^ ]{3}/& /g'
    捕获三个连续的非空格字符并打印回来后跟一个空格.