当行组更改时在文件中插入行

当行组更改时在文件中插入行

假设我有一个像这样的文本文件:

group1 hello
group1 there
group1 nice line
group2 here
group2 we
group2 go

我想要做的是当行组发生变化时插入一行,例如:

group1 hello
group1 there
group1 nice line
---------------------------------------
group2 here
group2 we
group2 go

我不在乎该行是否也显示为第一行和/或最后一行。这时候我只需要一些分隔信息的东西。

我该如何用sedor做到这一点awk?或者也许还有其他方法?

答案1

awk

awk 'NR!=1&&x!=$1{print "---"} {x=$1}1' file
  • NR!=1&&x!=$1:适用于除第一行之外的所有行,并检查第一个字段是否已更改。
  • print "---":如果是,请打印破折号。
  • {x=$1}:为下一次迭代设置 x。
  • 1awk:打印每一行的真实条件。

相关内容