首页 > 解决方案 > 将每个包含子字符串的单词加倍(让我们说“完成”),而不是子字符串本身

问题描述

Example:
I have done my job well. i donett need any advice.
I have done my job well. I donett donett need any advice.

这是我尝试过的代码:

$ cat * | sed -E 's/\w*+done\w+*/& &/g'|  grep 'done'

但是这段代码也算作最终结果。我需要使用 sed 来完成。

标签: regexshellunixsed

解决方案


awk如果您对它没问题,这可以很容易地完成。

awk '{for(i=1;i<=NF;i++){if($i !~ /^done$/ && $i ~ /done/){$i=$i OFS $i}}} 1' Input_file

输出如下。

I have done my job well. I donett donett need any advice.

推荐阅读