首页 > 解决方案 > 带有正则表达式的 sed 命令

问题描述

我不明白这个命令使用“sed”的结果。

前任:

echo "Here is my website: https://mywebsite.blabla/files" | sed -e 's/.* //g'

结果:

https://mywebsit.blabla/files

现在我添加第二个“https”:

echo "Here is my https website: https://mywebsite.blabla/files" | sed -e 's/.* //g'

sed 的结果也是一样的。

据我了解,这s/.* //g意味着替换任何匹配任何零个或多个字符和一个没有任何内容(//)的空格,直到链的末尾。显然我错过了一些东西。

任何想法?

标签: regexbashsed

解决方案


sed -e 's/.* //g'使用sed -e 's/<search>/<replace>/g'sed的功能。

在您的示例中,搜索模式.*将匹配:

  • .每个角色
  • *0次以上
  • 直到一个空格

现在结果似乎合乎逻辑:您将用任何内容替换除最后一个“单词”之外的所有内容。


推荐阅读