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

Batch file 要删除文本文件中关键字的批处理文件,batch-file,replace,Batch File,Replace,我有一个文本文件,看起来像这样: P4657_1 P1352_1 P3126_1 等等 我需要一个批处理脚本,删除开头的“p”和结尾的“_1”。 我在这个论坛上找到了很多脚本示例,但没有一个适合我的需要 有人能帮忙吗 sed -E 's/^P//g; s/_1$//g' yourinfile > outfile 通过第一次替换开始p的get nuked,到第二次替换结束时,您就完成了。有关修改文本文件的选项列表,请参阅 我最喜欢的选择是a。该脚本不需要安装任何第三方可执行文件,它将在任

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

P4657_1
P1352_1
P3126_1
等等

我需要一个批处理脚本,删除开头的“p”和结尾的“_1”。 我在这个论坛上找到了很多脚本示例,但没有一个适合我的需要

有人能帮忙吗

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

通过第一次替换开始p的get nuked,到第二次替换结束时,您就完成了。

有关修改文本文件的选项列表,请参阅

我最喜欢的选择是a。该脚本不需要安装任何第三方可执行文件,它将在任何现代版本的Windows上运行,从XP开始

使用REPL.BAT,解决方案非常简单:

type "yourFile.txt" | repl "^P(.*)_1$" "$1" >yourFile.txt.new
move /y "yourFile.txt.new" "yourFile.txt" >nul
谢谢大家。 我确实在其他地方找到了解决方案:

代码非常简单:

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
)

显然你可以用。因此,用打印文件,每行将该行指定给一个变量,编辑该变量,然后回显该变量。

请解释更多,所有“关键字”是否都在一行?您尝试了什么,请在此处显示您的代码。不幸的是,我使用的是windows,所以我不确定是否可以使用sed。下载cygwin(它是免费的),您将拥有一切(sed、bash、awk等)和一个全新的世界。这如何删除
\u 1
位?它没有。我使用另一个类似这样的代码块来替换_1