regex - 将每个包含子字符串的单词加倍(让我们说“完成”),而不是子字符串本身
问题描述
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 来完成。
解决方案
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.
推荐阅读
- sql - 根据条件事件标记地址
- gradle - 导致 zip END 标头在 intleij 中找不到 gradle 项目
- python - 在python/pygame中以OOP方式按顺序保存文本输入和blit文本
- python - IndexError:索引 50552 超出轴 0 的范围,大小为 50552
- php - 如何在“添加到购物车”按钮旁边显示价格?
- algorithm - 是否有一种算法可以通过水箱水位的变化来检测水箱中的补充水
- xts - 是否可以仅使用年份作为索引来创建 xts 对象?
- python-3.x - 是否有任何快速的方法来检查 ext2/3/4 空闲 inode(在未安装的磁盘上)?和/或为什么它们不都具有相同的“坏类型”状态
- python - 在 python 中处理需要我显示名称和价格(从最高到最低)并且最便宜的项目是免费的场景,
- node.js - 带有 amqplib 的 Rabbitmq inNode.js 不广播扇出消息