用类似的情况替换bash字符串

时间:2015-12-09 10:31:09

标签: string bash replace

我正在阅读包含这些正则表达式的文档行(不包含单引号,包含双引号:

' "text" '

' "text1/text2" '

我想使用bash脚本替换文本以获得这两个不同的输出:

' PRE text POST '

' ANOTHERPRE text1 MID text2 POST '

我试图使用字符串替换{string // /},但我似乎无法将'text'部分保留在我想要替换的字符串之间。

实际问题是字符串外部分隔符在两种情况下是相同的,情况之间的差异是“/”,这应该表明我可以使用ANOTHERPRE和MID。

关于如何在bash中执行此操作的任何建议?

举个例子,我有以下几行:

 hello "user" you are "alive/10"

我希望制作:

hello PRE user POST you are ANOTHERPRE alive MID 10 POST

1 个答案:

答案 0 :(得分:1)

我认为这很简单:

 sed 's/"/ PRE /;s/"/ POST /;s#/# MID #' <<< YourString

示例:

kent$ sed 's/"/ PRE /;s/"/ POST /;s#/# MID #' <<< ' "text1/text2" '
  PRE text1 MID text2 POST  

kent$ sed 's/"/ PRE /;s/"/ POST /;s#/# MID #' <<< ' "text" '       
  PRE text POST