我需要通过将文件#2中的第n行连接到文件#1的第n行来组合两个文本文件,以生成文件#3的第n行。它们将始终具有相同数量的行并且将始终匹配(即,一个文件中的第1行与第二个文件中的第1行匹配)。我必须将这两个文件连接成一个新的第三个文件。字段之间没有添加空格。我正在运行Windows 7并使用批处理文件,但如果这是一个更好的选择,我可以使用powershell。以下是名为test.txt的第一个文件的示例:
13CT162|
13MM1364 VOP AFF|
13MM1872|
14ct70|
Another|
brake f_Page_1|
brake f_Page_2|
brake f_Page_3|
brake f_Page_4|
brake f_Page_5|
以下是名为Index1.txt的第二个文件中的相应信息:
\\TEST-CLER\COMPLETE\13CT162.tif
\\TEST-CLER\COMPLETE\13MM1364 VOP AFF.tif
\\TEST-CLER\COMPLETE\13MM1872.tif
\\TEST-CLER\COMPLETE\14ct70.tif
\\TEST-CLER\COMPLETE\Another.tif
\\TEST-CLER\COMPLETE\brake f_Page_1.tif
\\TEST-CLER\COMPLETE\brake f_Page_2.tif
\\TEST-CLER\COMPLETE\brake f_Page_3.tif
\\TEST-CLER\COMPLETE\brake f_Page_4.tif
\\TEST-CLER\COMPLETE\brake f_Page_5.tif
我需要新文件看起来像这样(第1行):
13CT162|\\TEST-CLER\COMPLETE\13CT162.tif
我可以找到很多有关如何附加文件的帮助,但很少有关于如何将两个文件连接到第三个文件的帮助。这里有一个现有的答案,但它适用于Python。我必须使用Win 7 cmd或powershell命令。在此先感谢!!
答案 0 :(得分:1)
您可以使用For循环在PowerShell中执行此操作:
$File1 = Get-Content C:\Path\To\File1.txt
$File2 = Get-Content C:\Path\To\File2.txt
$File3 = @()
For($a=0;$a -lt $File1.count;$a++){
$File3+=$File1[$a].trim()+$File2[$a].trim()
}
$File3 | Out-File C:\Path\To\NewFile.txt
编辑:好的,我没有想到单行文件。这将使$ File1和/或$ File2字符串而不是数组。我们可以很容易地使它们成为数组,以便它可以正确地索引它们:
$File1 = @((Get-Content C:\Path\To\File1.txt))
$File2 = @((Get-Content C:\Path\To\File2.txt))
$File3 = @()
For($a=0;$a -lt $File1.count;$a++){
$File3+=$File1[$a].trim()+$File2[$a].trim()
}
$File3 | Out-File C:\Path\To\NewFile.txt