如果列中出现其他数字,请插入新行

use*_*725 3 linux bash

我有专栏

1
1
1
2
2
2
Run Code Online (Sandbox Code Playgroud)

当列中的值更改时,我想插入一个空白行:

1
1
1
                <- blank line
2
2
2
Run Code Online (Sandbox Code Playgroud)

Tom*_*ech 5

我建议使用awk:

awk -v i=1 'NR>1 && $i!=p { print "" }{ p=$i } 1' file
Run Code Online (Sandbox Code Playgroud)

在第一列之后的任何行上,如果第i列的值与先前的值不同,则打印空白行。始终设置的值p。所述1在端部的值为真,这意味着AWK打印线。i可以设置为您选择的列号。


Cyr*_*rus 1

while read L; do [[ "$L" != "$PL" && "$PL" != "" ]] && echo; echo "$L"; PL="$L"; done < file