Board logo

标题: 如何在已存在的文件加入指定的行 [打印本页]

作者: tclshx     时间: 2006-10-9 04:25    标题: 如何在已存在的文件加入指定的行

如何在已存在的文件中加入指定的内容: 比如有一个AB.TXT文件,里面只有一行内容.另一个BC.TXT文件已存在多行内容,我现在要在BC.TXT中的第二行和第5行下加入AB.TXT中的内容,怎么写?

作者: 9527     时间: 2006-10-9 05:35
@echo off set a=&set /p a=<AB.txt for /f "tokens=1* delims=:" %%a in ('findstr /n . BC.txt') do ( echo %%b>>tmp.txt if "%%a"=="2" echo %a%>>tmp.txt if "%%a"=="5" echo %a%>>tmp.txt ) START TMP.TXT 粗糙的写了一下,不过好像还可以更加简单,算了,该下班了,明天在说吧

作者: pengfei     时间: 2006-10-9 05:36
代码已修正:
@echo off
set /p ii=<ab.txt
setlocal enabledelayedexpansion
for /f "delims=" %%i in (bc.txt) do (
    echo %%i>>temp.txt
    set /a num+=1
    if "!num!"=="2" echo %ii%>>temp.txt
    if "!num!"=="5" echo %ii%>>temp.txt
)
[ Last edited by pengfei on 2006-10-9 at 08:01 ]

作者: 不得不爱     时间: 2006-10-9 06:43
3楼的不符合要求。
@echo off
for /f "tokens=1* delims=:" %%a in ('findstr /n . BC.txt') do (
echo %%b
if "%%a"=="2" type ab.txt
if "%%a"=="5" type ab.txt
)>>tmp.txt

作者: pengfei     时间: 2006-10-9 08:01
发现是我理解错误...

作者: tclshx     时间: 2006-10-9 10:18
我还是帖上我的内容吧: 以下是修改前MENU.LST文件中的内容: timeout 30 default 5 splashimage (hd0,0)/maotao/win2008.xpm.gz fontfile (hd0,0)/maotao/fonts title 启动 maotao最终修改版xpe chainloader /maotao/ldrxpe title 运行矮人工作室DOS工具盘4.2 root (hd0,0) kernel (hd0,0)/maotao/memdisk.gz initrd (hd0,0)/maotao/ar4.img title 运行多功能GHOST 8.3 kernel (hd0,0)/maotao/memdisk.gz initrd (hd0,0)/maotao/ghost.img title 返回硬盘第一分区Windows菜单或启动该Window root (hd0,0) chainloader +1 title 重新启动计算机 reboot title 关闭计算机 halt AB.TXT中的内容如下:(是一个可变化的MD5密码) $1$6$M/C73ICWnhubAdHfe8BjZ1 要修改MENU.LST中的内容为: timeout 30 default 5 splashimage (hd0,0)/maotao/win2008.xpm.gz fontfile (hd0,0)/maotao/fonts password --md5 $1$6$M/C73ICWnhubAdHfe8BjZ1 title 启动 maotao最终修改版xpe password --md5 $1$6$M/C73ICWnhubAdHfe8BjZ1 chainloader /maotao/ldrxpe title 运行矮人工作室DOS工具盘4.2 password --md5 $1$6$M/C73ICWnhubAdHfe8BjZ1 root (hd0,0) kernel (hd0,0)/maotao/memdisk.gz initrd (hd0,0)/maotao/ar4.img title 运行多功能GHOST 8.3 password --md5 $1$6$M/C73ICWnhubAdHfe8BjZ1 kernel (hd0,0)/maotao/memdisk.gz initrd (hd0,0)/maotao/ghost.img title 返回硬盘第一分区Windows菜单或启动该Window root (hd0,0) chainloader +1 title 重新启动计算机 reboot title 关闭计算机 halt 且以后可根据AB.TXT的变化内容来随时修改MENU.LST

作者: tclshx     时间: 2006-10-11 18:55
看来是没希望了

作者: namejm     时间: 2006-10-12 00:45
Originally posted by tclshx at 2006-10-11 18:55: 看来是没希望了
  你应该好好揣摩一下以上的代码,不要指望别人把所有的事情都帮你解决完。自己学到方法才是最重要的,否则,下次碰到一个类似的问题你还是解决不了。 [ Last edited by namejm on 2006-10-12 at 00:48 ]

作者: 无奈何     时间: 2006-10-12 05:22
想说的 namejm 兄已经说了。 楼主试试下面的命令,可简单解决你的问题。
sed -e "2rAB.txt" -e "5rAB.txt" BC.TXT
sed 下载:http://www.student.northpark.edu/pemente/sed/gsed407x.zip [ Last edited by 无奈何 on 2006-10-14 at 06:21 ]

作者: lxmxn     时间: 2006-10-12 06:17    标题: sed怎么用?

Originally posted by 无奈何 at 2006-10-12 05:22: 想说的 namejm 兄已经说了。 楼主试试下面的命令,可简单解决你的问题。
sed "2~3rAB.txt" BC.TXT
sed 下载:http://www.student.northpark.edu/pe ...
无奈何版主说的这个sed的帮助是这样的:
C:\Documents and Settings\Administrator>sed /? sed: -e expression #1, char 2: Unterminated address regex
可以简单给介绍一下sed的作用和语法吗?

作者: 无奈何     时间: 2006-10-12 06:46
Re lxmxn Sed 是 linux、unix 下的工具,sed -h 或 sed --help 查看帮助。 Sed 的使用也比较复杂,你可以先参阅一下下面链接的文章,BIG5 编码的。 以后我会整理一些我收集的文章贴上来。 文章地址:phi.sinica.edu.tw ... 还有可以到:gnuwin32.sourceforge.net ... 这个地址下载 sed 最新的 win32 版,其中附带的帮助文章也非常好,只是是英文的。

作者: lxmxn     时间: 2006-10-12 07:29
谢谢版主,但是你说的这个”文章地址“里面的说明文字都好像是乱码啊` 下面是我复制的一段文字:
瓜い , よ standard input 夹非块 , 琌弄戈ぇ矪 ; standard output 夹非块 , 琌癳挡狦ぇ矪 ; い丁 sed よ遏ㄢ店絬よ遏ボ sed 瑈祘ㄤい , オ娩店絬よ遏ボ sed 盢夹非块戈竚 pattern space , 娩店絬よ遏ボ sed 盢 pattern space い絪胯Ч拨戈癳夹非块 店絬よ遏い , ㄢ龟絬よ遏だボ pattern space 籔 sed scriptㄤい , pattern space 絯侥跋 , ウ琌 sed 初┮ ; τ sed script 玥ボ舱磅︽絪胯 瓜い, オ娩店絬よ遏 "Unix" パ夹非块竚 pattern space ; 钡帝 , 娩店絬よ遏い , sed 磅︽ sed script い絪胯 s/Unix/UNIX/ (爹秆 [2]) , 挡狦 "Unix" 砆蠢传Θ "UNIX" , ぇ , "UNIX" パ pattern space 癳夹非块 羆瓃┮ē , 讽 sed パ夹非块弄︽戈 pattern space  , sed ㄌ酚 sed script 絪胯硋癸 pattern space ず戈磅︽絪胯 , ぇ , パ pattern space ず挡狦癳夹非块 , 钡帝盢︽戈弄狡磅︽瓃笆 , 弄Ч┮Τ戈︽ゎ

作者: 无奈何     时间: 2006-10-12 08:20
我已说明是 BIG5 编码 的,右键编码设置一下。

作者: vkill     时间: 2006-10-14 01:13
下载sed 回去看看