使用awk以编号格式将单行拆分为多行

San*_*San 4 linux shell scripting awk awk-formatting

我正在尝试使用awk命令将值拆分为三个部分.需要帮助打破3.

内容= 1. 11683 (<server01>: du.size[/,free] : 0.5 % 2. 21683 (<server02>: du.size[/,free] : 1.5 % 3. 31683 (<server03>: du.size[/,free] : 3.5 %

我希望上面的内容在编号系统中分成3行.

需要样品输出:

1. 11683 (<server01>: du.size[/,free] : 0.5 % 
2. 21683 (<server02>: du.size[/,free] : 1.5 % 
3. 31683 (<server03>: du.size[/,free] : 3.5 %
Run Code Online (Sandbox Code Playgroud)

我尝试过以下命令:

echo $content | awk -F"3. " '{ print $2 }' 
Run Code Online (Sandbox Code Playgroud)

我明白了

31683 (<server03>: du.size[/,free] : 3.5 %
Run Code Online (Sandbox Code Playgroud)

与其他人类似,但仍未能以正确的编号格式获得样本输出,如上所示.

谁可以帮我这个事 ?

Ste*_*eve 6

这个%符号看起来像是一个很好的候选人.尝试:

sed 's/% /%\n/g'
Run Code Online (Sandbox Code Playgroud)

测试:

echo "1. 11683 (<server01>: du.size[/,free] : 0.5 % 2. 21683 (<server02>: du.size[/,free] : 1.5 % 3. 31683 (<server03>: du.size[/,free] : 3.5 %" | sed 's/% /%\n/g'
Run Code Online (Sandbox Code Playgroud)

结果:

1. 11683 (<server01>: du.size[/,free] : 0.5 %
2. 21683 (<server02>: du.size[/,free] : 1.5 %
3. 31683 (<server03>: du.size[/,free] : 3.5 %
Run Code Online (Sandbox Code Playgroud)