中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 对文件操作 shell脚本该怎么写:替换文件的最后一行
作者:
标题: 对文件操作 shell脚本该怎么写:替换文件的最后一行 上一主题 | 下一主题
RocheChild
初级用户





积分 110
发帖 44
注册 2007-11-1
状态 离线
『楼 主』:  对文件操作 shell脚本该怎么写:替换文件的最后一行

我想替换文件的最后一行,如何写?

───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字
说明:原标题"如果我想对文件操作 shell脚本该怎么写"不利于论坛搜索
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-9-27 at 11:49 ]

2008-2-29 13:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  


@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 这是一个笨办法


2008-2-29 15:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 3 楼』:  

应该是
var+=1
吧!

2008-2-29 15:09
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  

楼上可以自己测一下到底是+还是-
呵呵

2008-2-29 15:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  

sed "$s/.*/the end/" urfile|more > newfile

2008-2-29 22:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 6 楼』:  

@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 另一个笨办法



简单!简单!再简单!
2008-2-29 23:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  


@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 加上双引号防止路径中有空格


2008-3-1 10:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: