是否可以从命令行自动替换Notepad ++中的文本?

时间:2016-06-19 21:48:47

标签: windows replace command-line notepad++

我想使用Notepad ++在文本文件中查找和替换字符串,我想从命令行自动执行此操作。

我想替换" userid ="的所有出现次数。使用" userid = 123456"在textfile中mytextfile.txt

我该怎么办?

2 个答案:

答案 0 :(得分:5)

您可以分三步完成:

  1. 录制执行替换的宏
  2. 从命令行打开文件
  3. 执行宏
  4. 录制宏

    1. 宏>开始录制
    2. 搜索> Repalce(或Ctrl + H
    3. 查找:userid=\d*,替换为:userid=123456,然后选中“常规展示次数
    4. Replace with regular expression

      1. 点击“全部替换”(或Alt + A
      2. 宏>停止录制
      3. 宏>保存当前记录器宏
      4. 从命令行打开

        运行<notepad++ path> mytextfile.txt。例如,在Windows 64位中:

        "C:\Program Files (x86)\Notepad++\notepad++.exe" mytextfile.txt
        

        执行宏

        进入“微距”菜单并选择以前录制的宏。

        解决问题的更好方法是使用 Perl one-liner

        1. 安装Perl脚本语言
        2. 运行以下命令
        3. perl -i.bak -pe 's/userid=\d*/userid=123456/g' mytextfile.txt

          此命令将复制备份mytextfile.txt.bak中的文件并替换所有出现的“userid”。

          关于Perl one-liner,这是一个很棒的页面,其中包含一些提示:https://blogs.oracle.com/ksplice/entry/the_top_10_tricks_of

          干杯

答案 1 :(得分:2)

N ++是一种编辑工具,而不是文件处理实用程序。一个稍微可能的解决方案是提供宏的名称,以便在打开文件时立即运行。