Board logo

标题: 对文件操作 shell脚本该怎么写:替换文件的最后一行 [打印本页]

作者: RocheChild     时间: 2008-2-29 13:12    标题: 对文件操作 shell脚本该怎么写:替换文件的最后一行
我想替换文件的最后一行,如何写? ───────────────── 版务记录 ───────────────── 执行:HAT 操作:在帖子标题中增加搜索关键字 说明:原标题"如果我想对文件操作 shell脚本该怎么写"不利于论坛搜索 ───────────────── 版务记录 ───────────────── [ Last edited by HAT on 2008-9-27 at 11:49 ]

作者: HAT     时间: 2008-2-29 15:00
@echo off
set SrcFile=C:\test\old.txt
set DstFile=C:\test\new.txt

type nul>"%DstFile%"
for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%SrcFile%"') do set var=%%a
set /a var-=1
set row=0
setlocal enabledelayedexpansion
for /f "tokens=1* delims=" %%a in ('findstr .* "%SrcFile%"') do (
  if !row! lss %var% (
  >>"%DstFile%" echo %%a
  )
  set /a row+=1
)
>>"%DstFile%" echo 这是一个笨办法

作者: huahua0919     时间: 2008-2-29 15:09
应该是 var+=1 吧!

作者: HAT     时间: 2008-2-29 15:26
楼上可以自己测一下到底是+还是- 呵呵

作者: lxmxn     时间: 2008-2-29 22:20
sed "$s/.*/the end/" urfile|more > newfile

作者: terse     时间: 2008-2-29 23:07
@echo off set File1=C:\old.txt set File2=C:\new.txt for /f "tokens=*" %%i in (%File1%) do set var=%%i findstr /ivc:"%var%" %File1%>"%File2%" >>"%File2%" echo 另一个笨办法

作者: HAT     时间: 2008-3-1 10:58
@echo off
set SrcFile=C:\test 1\old.txt
set DstFile=C:\test 1\new.txt

for /f "usebackq tokens=*" %%a in ("%SrcFile%") do set last=%%a
>"%DstFile%" findstr /ivc:"%last%" "%SrcFile%"
>>"%DstFile%" echo 加上双引号防止路径中有空格