我有一个看起来像这样的文本文件:
P4657_1
P1352_1
P3126_1
等等。
我需要一个批处理脚本,它在开头删除“P”,在结尾删除“_1”。 我在这个论坛中发现了很多脚本示例,但没有一个能满足我的需求。
有人可以帮忙吗?
答案 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)