【问题标题】:Setting a variable and utilizing sed [duplicate]设置变量并利用 sed [重复]
【发布时间】:2019-01-30 04:12:02
【问题描述】:

我已经尝试了一个多小时来解决这个问题,但我的搜索并没有帮助找到答案。

试图在 bash 脚本中设置变量。此变量正在获取变量 A 并从中删除变量 B。

Prefix="$(echo ${Process} | sed -e 's/${Server}//g')"

所以如果Process=abcd1wxyz01Server=wxyz01,那么Prefix 最终应该是abcd1

我已经从在线搜索中尝试了很多次迭代,老实说,我不记得我尝试过的所有内容。

【问题讨论】:

    标签: bash variables sed


    【解决方案1】:

    您的问题是引号,正如afsal_p's answer 中所指出的那样。

    您可以改用parameter expansion 来做到这一点:

    $ process=abcd1wxyz01
    $ server=wxyz01
    $ prefix=${process%"$server"}
    $ echo "$prefix"
    abcd1
    

    ${<em>word</em>%<em>suffix</em>} 扩展从 word 的末尾删除了 suffix

    【讨论】:

      【解决方案2】:

      sed 中使用 bash 变量时,请使用 " 而不是 '

      Prefix="$(echo ${Process} | sed -e "s/${Server}//g")"
      echo $Prefix
      

      【讨论】:

      • echo "${Process}"echo "$Process" 也比echo ${Process} 更正确;见BashPitfalls #14。同样,echo $Prefix 应该是 echo "$Prefix"
      • 非常感谢您的澄清
      猜你喜欢
      • 2018-08-01
      • 2019-05-18
      • 2014-01-09
      • 2018-07-28
      • 2011-08-22
      • 1970-01-01
      • 2016-08-24
      • 2011-10-04
      • 2018-09-18
      相关资源
      最近更新 更多