[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
额,我也是现学现卖,刚刚学习批处理,看到你这问题去搜了下sed的用法,下载了个sed.exe试了下。
  1. sed "/123/d" a.txt
复制代码
这行代码可以满足你的要求,删除文本 a.txt 中的所有包括 123 字符串的行(包括回车和换行符),d在这里应该是del的意思,表示删除。

虽然你的问题解决掉了,可是我的问题来了。因为刚刚接触这个命令。我把sed.exe放到 C:\windows\system32中,然后运行
  1. @echo off
  2. sed "/123/d" a.txt>b.txt
  3. exit
复制代码
用b.txt来保存结果,发现b.txt中被 “Invalid keyboard code specified”占了第一行,如下:
  1. Invalid keyboard code specified
  2. asfqfgag
  3. qrasfgasf
  4. sfsabgb
  5. asfytjkyt
  6. utogmbmty
复制代码

如果这样,在得到的结果中进行行操作的时候,又要在n行上进行 n+1 的操作,而且还要删除第一行的这个字符串数据,略有不便。
请问这是不是我下载的sed的版本问题?并且当我直接执行 sed "/123/d" a.txt 这行代码的时候,a.txt 文本中内容并没有发生任何变化……
请教大家是怎么使用这个sed结果的?额,要不我再去看看书去,呵呵。

[ 本帖最后由 tianya520feng 于 2010-2-2 09:30 编辑 ]

TOP

老大的 -i 开关果然有效!
我用了
  1. @echo off
  2. sed -i "/123/d" a.txt>b.txt
  3. exit
复制代码

得到的 a.txt 文件被正确修改了,可是得到的 b.txt文件却只有如下内容
  1. Invalid keyboard code specified
复制代码

头疼!

TOP

回复 6楼老大 的帖子
我不是为了解决这个问题而发问,我是想知道为什么在我输出到另一个文件时,为什么会出现那样一句话。对了,那个sed.exe是老大在论坛里提供下载的,不知道是不是我的系统问题?我的是 GHOST XP SP3
找问题,解决问题,助人助已

TOP

返回列表