要删除的正则表达式。和 - 在字符串中使用 shell 脚本

Regex to remove . and - in string using shell script

我有一个字符串 com.xyx.it.abc.sweta-test-parameter 我需要将其转换为 com/xyz/it/abc/swetatestparameter

如何使用 Regex 实现输出?

我需要更换 .使用 / 并从字符串中删除 - 以下是我尝试过的尝试:

Package_Name="com.xyx.it.abc.sweta-test-parameter"
Package=${Package_Name//-//}

输出为:

com/xyx/it/abc/sweta-test-parameter

有人可以帮忙吗?

感谢您的帮助!提前致谢!

正如评论中所建议的那样,sed 将完成这项工作。请尝试将 Package=${Package_Name//-//} 替换为

Package=$(sed 's/\./\//g; s/-//g' <<< "$Package_Name")

可以直接在bash中进行,但是需要两步:

Package_Name="com.xyx.it.abc.sweta-test-parameter"

Package=${Package_Name//.//}    # Replace each "." with "/"
Package=${Package//-/}          # Replace each "-" with "" (i.e. delete them)

echo "$Package"                 # Prints "com/xyx/it/abc/swetatestparameter"

请注意,这不使用正则表达式。替换机制支持 glob 模式(文件名样式的通配符),但这甚至不使用它,只是普通字符串。