sed命令的行为有所不同

南达·基肖尔·雷迪(Nanda Kishore Reddy)

我正在尝试使用以下sed命令剥离字符串中的版本号:

sed -E "s/\-[0-9]+\.[0-9]+\.[0-9]+\-?[0-9]*\.?[0-9]*\-?[0-9]*\.?/./g"

因此,这会将字符串“ abc-de-sap-web-1.0.152.war”转换为“ abc-de-sap-web.war”。当作为bash命令运行时,此方法可以找到。但是,我试图通过ruby脚本来运行它。所以我尝试了以下命令:

tar_name = `echo "abc-de-sap-web-1.0.152.war" | sed -E "s/\-[0-9]+\.[0-9]+\.[0-9]+\-?[0-9]*\.?[0-9]*\-?[0-9]*\.?/./g"`

放“ tar_name”

但是,现在输出为“ abc-de-sap-web.ar”。它也取下“ w”字符。

有什么原因吗?

维克多·史翠比维

问题在于,\.?在双引号内的字符串文字被解释为.与任何字符匹配。

我建议使用Ruby gsub

tar_name = tar_name.gsub(/-(?:[0-9]+\.){2}[0-9.-]*/, '.')

参见Rubular regex演示

细节

  • - -连字符
  • (?:[0-9]+\.){2} -两个重复的1+数字和一个点
  • [0-9.-]* -0或多个数字,点或连字符

匹配项将替换为一个点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Vim执行的Shell命令的行为有所不同

来自分类Dev

sed在FreeBSD和Linux上的行为有所不同吗?

来自分类Dev

curl命令在Mac和Windows上的行为有所不同

来自分类Dev

保存为* .sh文件时,命令的行为有所不同

来自分类Dev

为什么从函数调用Bash的“源”命令的行为会有所不同?

来自分类Dev

msbuild与命令行vs Jenkins的行为有所不同

来自分类Dev

通配符的行为是否有所不同?

来自分类Dev

键盘在bash下的行为有所不同

来自分类Dev

iOS NSDateFormatter在设备上的行为有所不同

来自分类Dev

文字实例创建行为有所不同

来自分类Dev

步进时VBA代码的行为有所不同

来自分类Dev

为什么numpy导入的行为有所不同?

来自分类Dev

为什么groupby操作的行为有所不同

来自分类Dev

键盘在bash下的行为有所不同

来自分类Dev

对于MSIE 10上的行为有所不同

来自分类Dev

Powershell脚本在TeamCity中的行为有所不同

来自分类Dev

Intent.ACTION_PICK的行为有所不同

来自分类Dev

为什么hide()的行为有所不同?

来自分类Dev

GNU coreutils`sort`的行为有所不同

来自分类Dev

为什么to_sym的行为有所不同?

来自分类Dev

SSH执行命令的方式有所不同

来自分类Dev

SSH执行命令的方式有所不同

来自分类Dev

在命令前添加具有默认值的变量的行为会有所不同吗?

来自分类Dev

SQL SUMPRODUCT有所不同

来自分类Dev

语言与预期的有所不同

来自分类Dev

C ++模板类对于不同的编译器的行为有所不同

来自分类Dev

fread()在不同的字节序计算机上的行为是否有所不同?

来自分类Dev

JavaScript删除对象在不同的浏览器中的行为有所不同

来自分类Dev

Bootstrap Navbar在不同的浏览器中的行为有所不同

Related 相关文章

热门标签

归档