regex - 我想从工作区中的一个文件中搜索第 n 行,并将其替换为另一个文件中保存的第 n 行

标签 regex linux automation macros autohotkey

我正在使用 notepad++ 并且 file1.txt 包含这些行

s:label key="getText('abc.ghi')"
s:label key="getText('bcd.dsf')"
s:label key="getText('sdfsf.fdg')"
s:label key="getText('ewrwer.hgfgh')"

我想找到第一行

s:label key="getText('abc.ghi')"

在我的 Eclipse 工作区(包含不同类型文件列表的目录)中,假设它存在于 file2.txt 中,然后自动将其替换为另一个文件中的第一行(file3.txt),与所有其他行类似。
file3.txt 包含

s:label key="getText('abc.ghi')" requiredLabel="true"
s:label key="getText('bcd.dsf')" requiredLabel="true"
s:label key="getText('sdfsf.fdg')" requiredLabel="true"
s:label key="getText('ewrwer.hgfgh')" requiredLabel="true"

可以用宏来实现吗?(我在使用notepad++宏时遇到了问题)

如果上述操作很困难,我想自动从 file1.txt 中逐行搜索工作区中的所有行,并在其后附加 requiredLabel="true"
对于第一行,在工作区中搜索以下行
s:label key="getText('abc.ghi')"

并将其替换为

s:label key="getText('abc.ghi')"requiredLabel="true" 无论它出现在我的工作空间中的任何位置

其他线路类似

最佳答案

我不知道你想要什么。请找人将您的文字翻译成英文。

“我想在我的 Eclipse 工作区中找到第一行 [...]” 你的eclipse工作区是一个文件吗?我不明白。

以下是如何从 file1 读取第一行,并将 file2 的第一行替换为 file1 的第一行,后跟文本 requiredLabel="true":

file1 = C:\aaa\file1.txt
file2 = C:\aaa\file2.txt

FileReadLine, firstLineOfFile1, %file1%, 1
FileRead, file2Content, %file2%

replacementLine = %firstLineOfFile1%`nrequiredLabel="true"`n

newFile2Content := RegExReplace(file2Content,"^.+\R",replacementLine)
FileDelete, %file2%
FileAppend, %newFile2Content%, %file2%

MsgBox, %newFile2Content%

关于regex - 我想从工作区中的一个文件中搜索第 n 行,并将其替换为另一个文件中保存的第 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34741445/

相关文章:

java - 在 Java 中使用正则表达式解析 SQL 表定义

Javascript 正则表达式只接受特定字符

javascript - 带有特殊字符 (.) 的正则表达式字边界 javascript

linux - 在另一个环境中解析环境

c - OpenWrt 的 Eclipse GCC C 交叉编译不工作

delphi - 如何从自动化调用内部确定脚本源位置?

Javascript 条件正则表达式与处理

linux - 如何限制用户只能访问特定文件夹

angularjs - 使用 Jasmine 和 Protractor 进行测试时如何使用复合定位器

azure - 通过ARM模板自动向cosmos DB添加数据