Board logo

标题: [文本处理] 使用批处理读取两个txt文件,并按行交替输出 [打印本页]

作者: mscd    时间: 2017-12-21 15:06     标题: 使用批处理读取两个txt文件,并按行交替输出

题目如下:
有两个文本如下,实际中并不知道两文本各有多少行:

文本1.txt  
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ccccccccccccccccccccccccccccccccccccccc
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ggggggggggggggggggggggggggggggggggggggg
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

文本2.txt
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

要求用Windows下批处理和Linux下的shell脚本完成,两文本交替输出:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
ccccccccccccccccccccccccccccccccccccccc
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
ggggggggggggggggggggggggggggggggggggggg
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

要求:
1 尽量不生成临时文件
2 代码要高效,代码尽量简洁
3 给出各种情况的测试结果截图(正常文件,巨大文件,一个空文件,两个空文件)



请各位帮助解答蟹蟹
作者: ivor    时间: 2017-12-21 19:19

本帖最后由 ivor 于 2017-12-21 21:55 编辑
  1. <# :
  2. @echo off
  3. rem 增强代码兼容性,代码保存为 ".bat"、".cmd"、".ps1"均可执行
  4. powershell Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
  5. more +8 "%~f0" >"%~dpn0.ps1"
  6. powershell -File "%~dpn0.ps1"
  7. del "%~dpn0.ps1" & pause & exit /b
  8. #>
  9. $stime = get-date
  10. $file1 = get-content a.txt
  11. $file2 = get-content b.txt
  12. if ($file1.Length > $file2.Length){$end = $file1.Length}else{$end = $file2.Length}
  13. for($i = 0; $i -le $end; $i++){
  14. if ($file1){$file1[$i] | out-file -Append -Encoding ascii c.txt}
  15. if ($file2){$file2[$i] | out-file -Append -Encoding ascii c.txt}
  16. }
  17. $stime
  18. get-date
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2