我有一个包含数据集的文件,我需要为每行/记录添加总行数。
文件示例:
set1-open
record
record
record
record
set1-close
set2-open
record
record
record
record
record
set2-close
依旧......
我想:
set1-open
record 4
record 4
record 4
record 4
set1-close
set2-open
record 5
record 5
record 5
record 5
record 5
set2-close
我在Shell中写这个,所以sed会更受欢迎。
答案 0 :(得分:0)
这可能适合你(GNU sed):
sed -r '/open/{x;s/.*/0/;x};//,/close/{//b;x;:a;s/9(#*)$/#\1/;ta;s/$/:0123456789/;s/(.)(#*):.*\1(.).*/\3\2/;y/#/0/;x;G;s/\n/ /}' file
在遇到记录块开始时清除保留空间(HS)并使用设置为零的计数器进行准备。在一个记录块中,使用HS来保持一个递增的计数器,然后将一个副本附加到每个记录。