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

时间:2016-01-12 10:41:06

标签: 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')"

我想找到第1行

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

 在我的eclipse工作区(包含不同类型文件列表的目录)中,假设它存在于file2.txt中,然后自动替换另一个文件中的第一行(file3.txt),同样适用于所有其他行。< br /> 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 ++ macro时遇到了麻烦)

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

并用

替换它 s:label key="getText('abc.ghi')" requiredLabel="true" 它在我的工作区中的任何地方  

与其他线类似

1 个答案:

答案 0 :(得分:0)

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

“我想在我的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%