假设我有一个像这样的文本文件:
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
我不在乎该行是否也显示为第一行和/或最后一行。这时候我只需要一些分隔信息的东西。
我该如何用sed
or做到这一点awk
?或者也许还有其他方法?
答案1
和awk
:
awk 'NR!=1&&x!=$1{print "---"} {x=$1}1' file
NR!=1&&x!=$1
:适用于除第一行之外的所有行,并检查第一个字段是否已更改。print "---"
:如果是,请打印破折号。{x=$1}
:为下一次迭代设置 x。1
awk
:打印每一行的真实条件。