要删除的正则表达式。和 - 在字符串中使用 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 模式(文件名样式的通配符),但这甚至不使用它,只是普通字符串。
我有一个字符串 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 模式(文件名样式的通配符),但这甚至不使用它,只是普通字符串。