text - 合并两个unicode文本文件的非空行,使用windows批处理

标签 text batch-file replace

我们有 2 个 Unicode 文件。其中一个包含另一个文件中缺少的行。像这样:

1. 
2. bbbbbbbbbbbbbbbbb
3. 
4. ddddddddddddddddddddd
5. eeeeeeeeeeeeeeeeeeeeeeee


1. aaaaaaaaaaaaaa
2. 
3. ccccccccccccccccc
4.
5.

我们希望将它们合并到包含所有行的第三个文件中:

1. aaaaaaaaaaaaaa
2. bbbbbbbbbbbbbbbbb
3. ccccccccccccccccc
4. ddddddddddddddddddddd
5. eeeeeeeeeeeeeeeeeeeeeeee

注意事项:
a,b,c,d,e - 可以是任何文本。
行号仅用于说明目的,它们不存在于实际文件中。

我用“批处理文件”标签创建了这个问题,但我愿意接受有关如何实现这一目标的任何建议。当然最好不要涉及C++之类的东西

最佳答案

假设没有一行以冒号开头, 首先,我们将两个文件中的每一行读入两个数组,包括空白行——对此有一个特殊的 hack,因为正常的 for 会跳过空白行。 然后将具有相同索引的两个数组中的元素连接起来,并输出到 results.txt 中:

setlocal EnableDelayedExpansion

set i=0
for /f "tokens=1* delims=:" %%A in ('type "file1.txt" ^| findstr /n "^"') do (
    set /A i+=1
    set arr1[!i!]=%%B
)

set i=0
for /f "tokens=1* delims=:" %%A in ('type "file2.txt" ^| findstr /n "^"') do (
    set /A i+=1
    set arr2[!i!]=%%B
)

for /L %%i in (1,1,%i%) do echo.!arr1[%%i]!!arr2[%%i]!>> result.txt

关于text - 合并两个unicode文本文件的非空行,使用windows批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16303701/

相关文章:

java - 替换文本边界内的表达式

java - 我正在创建一个刽子手程序,但我在单词更新方法方面遇到了一些问题

c++ - 在 C++(WinAPI 或 QT)中打印文本和图像

ios - UIImageView 覆盖单元格中的文本

python - wxPython 将文本绘制到现有位图或图像上

java - Jenkins:Jenkins 未运行 TestNG 测试

shell - 用于 UNIX shell 命令替换的 WIndows 批处理模拟

mysql - 如何通过运行批处理文件来启动 XAMPP MySQL?

jquery - 根据标签包含的文本将 id 添加到标签

python-3.x - 如何使用 plt.text() 函数在 python3 生成的图中输入特殊符号?