【问题标题】:How to search and replace pattern in a text file using a script in Ubuntu [closed]如何在 Ubuntu 中使用脚本搜索和替换文本文件中的模式 [关闭]
【发布时间】:2014-01-02 18:08:27
【问题描述】:

我在文件中有以下文本:

@XmlElement(namespace = "urn:ietf:params:xml:ns:icalendar-2.0", required = true)

我想将其替换为:

@Namespace(reference="urn:ietf:params:xml:ns:icalendar-2.0")
@Element(required = true)

我也想替换所有出现的地方。

请建议如何在脚本中执行此操作以在多个文件上运行。

【问题讨论】:

  • 你在 Linux 上吗?您可以在 Linux shell 中使用 sed 命令轻松完成此操作。
  • 基本搜索/替换,对于 SO 和 Python 来说是个坏问题。 sed,正则表达式,基本字符串操作。

标签: python regex bash shell grep


【解决方案1】:

在 Linux 上,您可以在 shell 中执行以下操作:

sed 's/@XmlElement(namespace = \(".*"\), \(required = true\))/@Namespace(reference=\1)\n@Element(\2)/' files

请注意,末尾的files 将是您的文件名或模式,例如*.txt。您可以在sed 之后添加-i(在它们之间留一个空格)以“就地”编辑文件,这意味着文件实际上将被编辑。您应该先备份文件,因为这会更改它们。您也可以在-i 之后添加一个扩展名,如-ibak,它应该使用.bak 扩展名创建每个文件的备份,但请仔细检查您的sed 版本是否这样做(即man sed并阅读-i)。

【讨论】:

    猜你喜欢
    • 2013-06-13
    • 2017-01-06
    • 1970-01-01
    • 2021-09-20
    • 2019-12-23
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多