问题描述
我正在尝试形成以下格式的长索引文件:
[1]
13 14 15 16 17 18
[2]
89 90 91 92 93 94
[3]
165 166 167 168 169 170
[4]
---------------------
我的文件格式为:
[index-i]
13 14 15 16 17 18
[index-i]
89 90 91 92 93 94
[index-i]
165 166 167 168 169 170
[index-i]
-------
如何使用脚本将方括号中的“ index-i”替换为“出现次数”
解决方法
如果longindex包含您的输入文件
$ cat longindex
[index-i]
13 14 15 16 17 18
[index-i]
89 90 91 92 93 94
[index-i]
165 166 167 168 169 170
[index-i]
然后使用awk(或gawk)
$ gawk '/^\[/{print "[" ++i "]"; next;} {print}' longindex
[1]
13 14 15 16 17 18
[2]
89 90 91 92 93 94
[3]
165 166 167 168 169 170
[4]
,
这可能对您有用(GNU sed和bash):
sed '/^\[/{g;s/.*/expr & + 1/e;h;s/.*/[&]/}' file
如果当前行以方括号开头,则按如下方式处理该行。
用保留空间的内容替换当前行。
增加计数器。
更新保留空间。
用方括号括起来。