sed - 为什么 sed 不处理所有事件?
问题描述
或者:如何让 sed 替换所有事件?
$ echo ":::::::" |sed -e 's/::/:0:/g'
:0::0::0::
我希望/希望输出为:0:0:0:0:0:0:
解决方案
您可以在以下位置使用标签和跳转指令gnu-sed
:
echo ":::::::" | sed ':a; s/::/:0:/g; ta'
:0:0:0:0:0:0:
或使用 POSIX sed
:
echo ":::::::" | sed -e ':a' -e 's/::/:0:/g; ta'
或使用awk
:
awk 'BEGIN {FS=OFS=":"} {for (i=2; i<NF; ++i) $i="0"} 1' <<< ':::::::'
:0:0:0:0:0:0:
推荐阅读
- sql - 如何将子查询中的字段/列添加到外部选择语句中?
- docker - 在 Azure devops 中使用 docker 构建 .net 核心时出现问题
- c# - c# 更新 SharePoint 用户属性 CSOM + Pnp 框架
- azure - 如何提高 Azure 自定义视觉准确性
- firebase - 从 GCP 控制台,我们可以编写一个与 Firebase 实时数据库交互的 GCP 云函数吗?
- r - 删除y轴的第一个标签
- ruby-on-rails - Heroku 上的 Sendgrid 与 apikey 身份验证
- qt - QML QtCharts CandlestickSeries 中继器
- java - Junit 5 测试 toString()
- java - JHipster OpenAPI 模型包