批处理文件删除文本文件中的关键字

时间:2013-05-29 09:20:37

标签: batch-file replace

我有一个看起来像这样的文本文件:

P4657_1
P1352_1
P3126_1

等等。

我需要一个批处理脚本,它在开头删除“P”,在结尾删除“_1”。 我在这个论坛中发现了很多脚本示例,但没有一个能满足我的需求。

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:0)

sed -E 's/^P//g; s/_1$//g' yourinfile > outfile

凭借第一次替换开始P得分,第二次决赛_1得到了结果,你就完成了。

答案 1 :(得分:0)

有关修改文本文件的选项列表,请参阅How can you find and replace text in a file using the Windows command-line environment?

我最喜欢的选项是hybrid JScript/batch utility I wrote called REPL.BAT。该脚本不需要安装任何第三方可执行文件,它将在任何现代版本的Windows上运行,从XP开始。

使用REPL.BAT,解决方案就像:

一样简单
type "yourFile.txt" | repl "^P(.*)_1$" "$1" >yourFile.txt.new
move /y "yourFile.txt.new" "yourFile.txt" >nul

答案 2 :(得分:0)

感谢大家。 我确实在其他地方找到了解决方案:http://www.dostips.com/forum/viewtopic.php?f=3&t=1498

代码非常简单:

set "search=P"
set "replace="
for /F "delims=" %%a in (input.txt) DO (
   set line=%%a
   setlocal EnableDelayedExpansion
   >> output2.txt echo(!line:%search%=%replace%!
   endlocal
)

答案 3 :(得分:0)

显然可以使用echo。因此,使用type和每行for打印文件,将行分配给变量,编辑变量,然后回显变量。