【问题标题】:Find and replace in bash for variables在 bash 中查找和替换变量
【发布时间】:2013-11-26 17:10:57
【问题描述】:

我正在使用 bash,我想知道是否有一种很好的方法可以使用 bash 对文件进行查找和替换。就我而言,我想将占位符变量转换为原始变量,并使用任意数量的不同变量。例如:

"$PLACEHOLDER_ABC" -> $ABC 
"$PLACEHOLDER_123" -> $123 
"$PLACEHOLDER_qwe" -> $qwe

我不确定从哪里开始,我应该使用 find、sed、while 循环还是以上所有方法?

【问题讨论】:

    标签: linux bash shell sed debian


    【解决方案1】:

    类似

    sed 's/\$PLACEHOLDER_/\$/g' file
    

    将在美元符号后的任何位置删除PLACEHOLDER_,有效地截断它出现的参数扩展。

    【讨论】:

      【解决方案2】:

      您可能想看看“m4”宏处理器。联机帮助页为here。它包含在大多数 Linux/Unix 发行版中。

      这是一个小例子:

      define(`hello', `Hello, World')
      hello, welcome to m4!
      

      如果我们使用命令通过 m4 运行这个文件

      m4 sample.m4 > sample.txt
      

      它产生以下输出:

      Hello, World, welcome to m4!
      

      【讨论】:

        【解决方案3】:

        查找文件名 -exec sed -i 's/\$PLACEHOLDER_/\$/g' {} \;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-04-15
          • 1970-01-01
          • 2010-10-23
          • 2020-02-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多