【问题标题】:Add single line at the end of multiple files in IntelliJ在 IntelliJ 中的多个文件末尾添加单行
【发布时间】:2021-04-17 06:46:15
【问题描述】:

我需要在许多配置文件(txt-like 格式)的末尾添加一个文本行。所有文件的行都是相同的。

是否有自动命令对所有文件执行一次?我试图在 IntelliJ replace in files 选项中搜索(CTRL + SHIFT + R 窗口)但是我找不到任何可以自动执行的操作。

如您所见,所有选项(大小写、文件类型等)都有选择,但没有适合我的选项。

【问题讨论】:

  • 你能添加一个你想要的例子吗?你试过什么?你有什么?
  • 用那个+你需要的东西替换文件末尾的东西怎么样?否则我会写一个脚本。
  • 您在什么操作系统上运行 IntelliJ? Windows 还是 *nix?
  • 回复:这里的反对意见,并不是说这异常不好,只是元效果:这是从meta.stackoverflow.com/questions/406006/…引用的 - 如果您想避免,请继续前进否决票,可能会查看help center,尤其是How to ask.

标签: intellij-idea replace ide jetbrains-ide


【解决方案1】:

只需使用在文件中替换编辑 → 查找 → 在文件中替换,或者在 Windows 和 Linux 中使用 Ctrl+Shift+R / ⌘ +Shift+R 在 Mac 中)来替换这个正则表达式:

(.)\Z

用这个:

$1\nThis is your line

在您需要的任何文件中。就是这样。


解释:

正则表达式(.)\Z 匹配并捕获整个文件中的最后一个字符:

  • (.) 匹配并捕获任何字符
  • \Z 匹配 EOF(文件结尾)

替换使用它在它后面添加你的行:

  • $1 使用第一个捕获组(即先前匹配的字符,以避免将其删除)
  • \n 引入新行
  • This is your line 是您要添加的行

您可以使用文件掩码选项来选择要更改的文件:

结果:

【讨论】:

    【解决方案2】:

    我会这样做:

    1. 从文件菜单中打开Settings 并选择Editor > General。向下滚动并找到On Save 部分并勾选Ensure every saved file ends with a line break。这应该看起来像这样:

    1. 然后,在您的项目中,转到 Edit > Find > Replace in PathCtrl+Shift+R(在 Windows 和 Linux 上)或 Shift+Command+R 在 MacOS 上。

    2. Replace in Files 窗口中勾选File mask: 并指定您的配置文件。 注意:您可以使用通配符! *例如,我使用三个文件config_1.txt config_2.txt config_3.txt,所以掩码是config_*.txt。以下是配置文件中的内容:

    1. 然后选择Search with regex - 那些位于图钉图标下方右侧的.*。另外,从In Project Module Directory Scope 中选择Directory。请参阅下面的屏幕截图。

    对于 5 和 6 正则表达式信用转到 @walen's answer:

    1. 在第一个搜索字段中输入 (.)\Z

    2. 键入$1\n,然后键入要附加文件的行。例如$1\n yet another config line

    3. 点击Replace All

    1. 您的配置文件应被附加,如下所示:

    1. 如果您使用的是 Linux,请省去所有麻烦,只需执行以下操作:
    echo "your new line" | tee -a config_*.txt
    

    PS。我已经在 IntelliJ Community 和 PyCharm Professional 上测试了这种方法。

    【讨论】:

    • 您使用tee 的替代解决方案也将对Windows 上安装了Git Bash 的所有IntelliJ 用户有用(可能其中大多数:我认为Windows 的Git 默认安装它),以及作为 Mac 用户(他们也有 Unix shell 可用)。
    猜你喜欢
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    相关资源
    最近更新 更多