Board logo

标题: 合并两个文件的行 [打印本页]

作者: fjcyz     时间: 2007-5-16 03:24    标题: 合并两个文件的行

a 文件

0638526668827
1502584252836
1467833311398
5967582477335
0579478512245
3007023284581
7677766839768
0098459371414
3407604726468
9930573897634
5390754524674
1838103002746
4592552155390

b文件

00-E0-4C-77-11-99 192.168.1.3 WIN2K
00-E0-1C-77-18-99 192.168.1.4 W2K
00-E0-4C-37-11-99 192.168.1.5 WINK
00-E0-4C-77-77-33 192.168.1.6 WIN

想把 A 的第一行, 合并到 B 行的未尾...
依次类推,第二行接第二行...第三行接第三行....
作者: bjsh     时间: 2007-5-16 09:05
什么意思?
要这样的效果
00-E0-4C-77-11-99 192.168.1.3 WIN2K
00-E0-1C-77-18-99 192.168.1.4 W2K
00-E0-4C-37-11-99 192.168.1.5 WINK
00-E0-4C-77-77-33 192.168.1.6 WIN
0638526668827
1502584252836
1467833311398
5967582477335
0579478512245
3007023284581
7677766839768
0098459371414
3407604726468
9930573897634
5390754524674
1838103002746
4592552155390

如果是这样的话:
copy b.txt+a.txt c.txt
看情况在b.txt最后加一空行;
copy
作者: ttyp     时间: 2007-5-16 09:26
他是要两个文件的对应行接起来
作者: bjsh     时间: 2007-5-16 10:12
哦;这个意思啊;那试试下面的这个行不
@echo off&setlocal enabledelayedexpansion
set /a count=1
for /f "delims=" %%b in (b) do (
    set /p"=%%b"<nul
    for /f "tokens=2 delims=:" %%a in ('findstr /n .* a^|findstr /b "!count!:"') do echo %%a
    set /a count+=1
)

作者: gamevyo     时间: 2008-1-2 22:18


  Quote:
Originally posted by bjsh at 2007-5-16 10:12 AM:
哦;这个意思啊;那试试下面的这个行不
[code]
@echo off&setlocal enabledelayedexpansion
set /a count=1
for /f "delims=" %%b in (b) do (
    set /p"=%%b"< ...

刚也遇到这个问题了   上面的 测试没通过

有没有可行的方法?
作者: zh159     时间: 2008-1-3 11:01
注:b.txt必须空头一行
@echo off
for /f "delims=" %%i in (a.txt) do (
  set /a n+=1
  call :loop "%%i"
)
pause
exit

:loop
for /f "skip=%n% delims=" %%n in (b.txt) do echo %~1 %%n&goto :eof

作者: HAT     时间: 2008-1-3 16:35
Unix小工具paste.exe实现这个功能很方便啊^_^
作者: gamevyo     时间: 2008-1-4 15:03


  Quote:
Originally posted by zh159 at 2008-1-3 11:01 AM:
注:b.txt必须空头一行
[code]@echo off
for /f "delims=" %%i in (a.txt) do (
  set /a n+=1
  call :loop "%%i"
)
pause
exit

:loop
for / ...

Thank you very much~