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