sed - sed:替换'-'之前的字符
问题描述
我有一个像这样的文本文件:
every- 100
atmo- 220
我希望将之前的字符替换-
为*
. 所以预期的输出应该是
*****- 100
****- 220
我将如何使用 sed 做到这一点?
我尝试过使用s/[a-z]*-/*/g
,但它不起作用并替换之前并包括-
单个*
我该如何解决?
解决方案
使用标签和分支实现循环:
$ sed ':1; s/^\(\**\)[a-z]/\1*/; t1' <<EOF
every- 100
atmo- 220
EOF
*****- 100
****- 220
推荐阅读
- r - 如何在 RasterBrick 中保存选定图层并将其保存为 R 中的 tiff?
- html - Webpack 使用 FileLoader 创建空图像文件
- javascript - 如何在闪亮应用程序的数据表中将逻辑列转换为静态复选框?
- python - 如何在 Tkinter Treeview 中获取选定行的索引?
- python - 为什么这个将列表中的所有项目转换为字符串的函数不起作用?
- kubernetes - 当我在 linux cmd 中键入“sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl”时,它返回空
- javascript - 如何让我的音乐机器人恢复播放?
- java - 如何使用 CSS 使链接中的照片符合比例?
- sql - 如何避免为一个只能有 3 个可能值并且属于多对多关系的对象定义两个额外的表?
- javascript - 我需要在另一个值上引用同一对象的值