在IntelliJ中的多个文件末尾添加单行
我需要在许多配置文件的末尾添加一个文本行(类似 txt 的格式)。该行对于所有文件都是相同的。
是否有自动命令对所有文件执行一次?我已经试过的IntelliJ中的选项来搜索替换文件(CTRL+ SHIFT+R窗口),但我无法找到任何东西来自动执行。
如您所见,所有选项(案例、文件类型等)都有选项,但没有适合我的案例。
回答
只需在文件中使用替换(Edit ? Find ? Replace in Files,或 Ctrl+Shift+R 在 Windows 和 Linux / ?+Shift+R 在 Mac 中)来替换这个正则表达式:
(.)Z
有了这个:
$1nThis is your line
在您需要的任何文件中。就这样。
解释:
正则表达式(.)Z匹配并捕获整个文件中的最后一个字符:
(.)匹配并捕获任何字符Z匹配 EOF(文件结尾)
替换使用它在它之后添加您的行:
$1使用第一个捕获组(即之前匹配的字符,以避免删除它)n引入一条新线路This is your line是您要添加的行
您可以使用文件掩码选项来选择要更改的文件:
结果:
回答
这是我将如何做到的:
- 从文件菜单中打开
Settings并选择Editor > General。向下滚动并找到On Save部分并勾选Ensure every saved file ends with a line break。这应该是这样的:
-
然后,在您的项目中,转到
Edit > Find > Replace in Path或Ctrl+Shift+R(在 Windows 和 Linux 上)或Shift+Command+R在 MacOS 上。 -
在
Replace in Files窗口中勾选File mask:并指定您的配置文件。注意:您可以使用通配符!*例如,我使用了三个文件,config_1.txt config_2.txt config_3.txt所以掩码是config_*.txt. 这是配置文件中的内容:
- 然后选择
Search with regex-.*图钉图标下方右侧的那些。此外,Directory从 中选择In Project Module Directory Scope。请参阅下面的屏幕截图。
对于 5 和 6 正则表达式信用转到@walen 的回答:
-
(.)Z在第一个搜索字段中键入。 -
键入
$1n,然后键入要附加文件的行。例如$1n yet another config line。 -
单击
Replace All。
- 您的配置文件应该被附加,如下所示:
- 如果您使用的是 Linux,请省去所有麻烦,只需执行以下操作:
echo "your new line" | tee -a config_*.txt
附注。我已经在 IntelliJ Community 和 PyCharm Professional 上测试了这种方法。