【要求】将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下载的 |