标题: [文本处理] 长度相同的文件合并的批处理问题 [打印本页]
作者: netdzb 时间: 2021-4-12 10:16 标题: 长度相同的文件合并的批处理问题
文本1
91B2C9E1
5800520c
69f4cd8f
42040a49
文本2
05000100
00896443
0A000000
06000000
希望得到的结果是
91B2C9E1 05000100
5800520c 00896443
69f4cd8f 0A000000
42040a49 06000000
中间的分隔符是空格。
我记得以前有个类似的需求,代码大概是这样写的,有些关键的地方我忘记了。希望坛里的大牛补全一下,谢谢!- for /f "delims=" %%x in ('1.txt') do (
- echo %%x
- )<2.txt
- pause
复制代码
作者: newswan 时间: 2021-4-12 10:27
linux 命令- paste -d ' ' a.txt b.txt c.txt
复制代码
作者: netdzb 时间: 2021-4-12 10:29
回复 2# newswan
这个我是知道的,我想用批处理写,原来有个类似的帖子,我一直找不到了。
作者: netdzb 时间: 2021-4-12 10:47
回复 2# newswan
你知道批处理如何echo一个回车吗?
echo "回车“>test.txt应该怎么写?
作者: newswan 时间: 2021-4-12 10:53
复制代码
作者: 路过 时间: 2021-4-12 11:28
- @echo off
- setlocal enabledelayedexpansion
- >new.txt (
- for /f "delims=" %%a in (1.txt) do (
- set /p q=%%a
- echo;!q!
- )
- )<2.txt
- start new.txt
- pause
- exit
复制代码
作者: qixiaobin0715 时间: 2021-4-12 11:39
- @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in (1.txt) do (
- set /p str=
- echo,%%i !str!
- ))<2.txt
- pause
复制代码
作者: xp3000 时间: 2021-4-12 11:46
- @echo off & setlocal enabledelayedexpansion
- for /f "delims=" %%A in (A.txt)do (set /a a+=1,b=0
- for /f "delims=" %%B in (B.txt)do (set /a b+=1
- if !a!==!b! echo %%A %%B>>New.txt)
- )
复制代码
这类文章有很多,这种一看就清楚
作者: newswan 时间: 2021-4-13 00:10
学习了,可以 < 给 for 语句传递 行- (
- for %%a in (*) do (
- set /p a=
- )
- )<1.txt
复制代码
作者: xczxczxcz 时间: 2021-4-14 10:15
本帖最后由 xczxczxcz 于 2021-4-14 10:21 编辑
回复 8# xp3000
若a b 文本各为1万行,那执行次数为:10000 ⅹ 10000;若对b文本每次用more来去掉某些行,应该更快。
作者: qixiaobin0715 时间: 2021-4-14 11:24
像这样前个文本每取一行,后个文本取所有行的循环,总是效率不高。下面代码好像效率也不高:- @echo off
- findstr /n ".*" 文本2.txt>文本2.temp
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (文本1.txt) do (
- set /a m+=1
- for /f "tokens=1* delims=:" %%b in ('findstr /b "!m!:" 文本2.temp') do (
- echo,%%a %%c
- )
- )
- del 文本2.temp
- pause
复制代码
作者: Batcher 时间: 2021-4-14 11:31
回复 11# qixiaobin0715
findstr耗时比较高
作者: qixiaobin0715 时间: 2021-4-14 11:33
回复 12# Batcher
嗯嗯
作者: newswan 时间: 2021-4-14 23:09
把一个文件,每一行保存在一个变量中,不知道 变量的数量,变量的最大长度 限制是多少
或者用数组
作者: newswan 时间: 2021-4-14 23:12
做个测试,比较一下各方案
作者: xp3000 时间: 2021-4-15 08:27
回复 15# newswan
不用比较了,看文章就知道我那个效率不高,
大文本用EmEditor写脚本,先将文本分1000份然后并行处理最后合并非常快,
这种方式在内存完成,不会一次次写入硬盘造成损耗
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |