如何用包含多个/字符的字符串替换字符串

时间:2018-01-22 14:06:08

标签: bash sed

我正在尝试更改以下字符串

FROM java_jre_8@sha256:92f22331226b9b3c43a15eeeb304dd7

FROM docker-registry.service.consul:5000/java_jre_8@sha256:92f22331226b9b3c43a15eeeb304dd7 

但由于/字符

,我很难使用sed
  

这适用于构建服务器。

2 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点。第一种是转义你要替换的字符串中的每个/

sed 's/from/to with \/ ... /'

另一种更简单的方法是使用/以外的分隔符。虽然大多数sed示例使用/作为分隔符,但您可以使用任何字符:

sed 's|from|to with / ...|'

这里,|s之后的第一个字符,因此sed知道将其用作分隔符。

答案 1 :(得分:0)

您可以使用function setVC(withViewController : Any) { let storyboard = UIStoryboard(name: "Main", bundle: nil) let vc = storyboard.instantiateViewController(withIdentifier: "MapViewController") as! withViewController } 作为分隔符,因为它不会出现在您的字符串中(您仍然可以使用#但是您必须引用实际的/是字符串的一部分。)

/

示例:

sed "s#FROM java_jre_8@#FROM docker-registry.service.consul:5000/java_jre_8@#'