首页 > 解决方案 > sed:替换'-'之前的字符

问题描述

我有一个像这样的文本文件:

every-    100
atmo-   220

我希望将之前的字符替换-*. 所以预期的输出应该是

*****-    100
****-   220

我将如何使用 sed 做到这一点?
我尝试过使用s/[a-z]*-/*/g,但它不起作用并替换之前并包括-单个*

我该如何解决?

标签: sed

解决方案


使用标签和分支实现循环:

$ sed ':1; s/^\(\**\)[a-z]/\1*/; t1' <<EOF
every-    100
atmo-   220
EOF
*****-    100
****-   220

推荐阅读