【问题标题】:How do I replace a sentence in shell?如何替换shell中的句子?
【发布时间】:2014-06-20 21:30:47
【问题描述】:

我正在尝试找到一种方法来替换 Shell 中文本文件中的句子,

例如,我想将 "Customer Name 1" 替换为 "customer name, jack_1"。 我故意包含了特殊字符。

我明白sed -i 's/original/new/g' file

我正在寻找可以替换可能包含特殊字符的更复杂句子的东西。

【问题讨论】:

  • 您担心哪些特殊字符? sed 将处理大多数事情,但您需要注意原始文本或替换文本中的任何斜线并特别对待它们。模式中的换行符是另一个问题。你有必要担心吗?

标签: regex shell replace sed


【解决方案1】:

您的示例在 sed 中运行良好...

$ sed 's/Customer Name 1/customer name, jack _ 1/g'
cust
cust
Customer Name 1
customer name, jack _ 1

(输入奇数行,输出偶数行。)

一般来说,如果您的某些符号被误解,您可以尝试通过在它们前面添加反斜杠 (\) 来转义它们。

【讨论】:

    【解决方案2】:
    perl -i.bak -pe 's/Customer Name 1/customer name, jack _1/g;' [file(s)]
    

    将在原地编辑一个或多个文件时做同样的事情

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      相关资源
      最近更新 更多