标题: sed 的d命令在批处理中出错一例,不知道哪里错了 [打印本页]
作者: 踏沙行 时间: 2018-12-15 13:24 标题: sed 的d命令在批处理中出错一例,不知道哪里错了
【要求】将2.txt中的属于注册表键的行保留,其它行删除。
2.txt内容如下:- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\OfficeScanNT
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\tmeevw\Parameters\Sentry\Products\OfficeScan
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\tmusa\Parameters\Sentry\Products\OfficeScan
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\tmeevw\Parameters\Sentry\Products\OfficeScan
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\tmusa\Parameters\Sentry\Products\OfficeScan
- 搜索结束: 找到 5 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\TrendMicro
- 搜索结束: 找到 2 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
-
- 搜索结束: 找到 0 匹配。
复制代码
bat代码如下:- type 2.txt|sed "/^HKEY_/!d">1.txt
复制代码
结果,运行bat后,得到的结果中,只有“搜索结束:找到N匹配”的行,而不是需要的结果
但是直接在cmd窗口测试,则能返回正确结果。
目前,只能在bat中使用type 2.txt|sed -n "/^HKEY_/p">1.txt,可以实现预定效果
【疑惑】为什么在批处理中使用!d得到的结果不正确,而在cmd中正确呢?
说明:操作系统为windows7 64位,sed.exe版本为4.4,是从http://www.bathome.net/s/tool/index.html下载的
作者: 0000 时间: 2018-12-15 14:56
本帖最后由 0000 于 2018-12-15 14:58 编辑
在批处理中是否有一行:
setlocal enabledelayedexpansion
如果有,多加个 ^
type 2.txt|sed "/^HKEY_/^!d">1.txt
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |