如何将增量计数附加到文本文件的每个预定义词中?
就像这个问题一样:如何将增量计数附加到文本文件的每一行?
我想将增量计数添加到文本文件。但是,我不想向每行添加增量计数,而是向预定义的单词添加增量计数。
例如,如果我想在文本中计算单词“ cinema”,我希望所有出现的“ cinema”都更改为“ cinemaN”,其中N是递增数,N的最大值取决于多少文字中出现“电影”一词的次数。
这样一个包含以下文本的输入文本文件:
他开车去电影院。然后,他走进电影院购买门票,之后发现距离上次参观电影院已有两年多的时间了。
生成具有以下内容的输出文件:
他开车去电影院1。然后,他进入电影院2购买门票,之后发现距离上次参观电影院已有两年多的时间了。
优选地,我还希望能够以倒序对所选单词进行编号。
即,这将生成具有以下内容的第二个输出文件:
他开车去电影院3。然后,他走进电影院2来购买门票,然后发现距离上次参观电影院1已有两年多的时间。
考虑到单词后的标点符号。
正向编号:
word="cinema"
awk -v word="$word" '
{
for (i = 1; i <= NF; i++)
if ($i ~ word "([,.;:)]|$)") {
gsub(word, word "" ++count,$i)
}
print
}' input-file
向后编号:
word="cinema"
count="$(awk -v word="$word" '
{ count += gsub(word, "") }
END { print count }' input-file)"
awk -v word="$word" -v count="$count" '
{
for (i = 1; i <= NF; i++)
if ($i ~ word "([,.;:)]|$)") {
gsub(word, word "" count--, $i)
}
print
}' input-file
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句