我有一个看起来像这样的文本文件:
P4657_1
P1352_1
P3126_1
等等。
我需要一个批处理脚本来删除开头的“P”和结尾的“_1”。我在这个论坛中找到了许多脚本示例,但没有一个适合我的需要。
任何人都可以帮忙吗?
我有一个看起来像这样的文本文件:
P4657_1
P1352_1
P3126_1
等等。
我需要一个批处理脚本来删除开头的“P”和结尾的“_1”。我在这个论坛中找到了许多脚本示例,但没有一个适合我的需要。
任何人都可以帮忙吗?
sed -E 's/^P//g; s/_1$//g' yourinfile > outfile
凭借第一个替换开始 P 被击中,通过第二个最终 _1 被击中,你就完成了。
谢谢大家。我确实在其他地方找到了解决方案: 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
)
有关修改文本文件的选项列表,请参阅如何使用 Windows 命令行环境查找和替换文件中的文本?.
我最喜欢的选项是我编写的名为 REPL.BAT 的混合 JScript/批处理实用程序。该脚本不需要安装任何第 3 方可执行文件,它可以在任何现代版本的 Windows 上运行,从 XP 开始。
使用 REPL.BAT,解决方案很简单:
type "yourFile.txt" | repl "^P(.*)_1$" "$1" >yourFile.txt.new
move /y "yourFile.txt.new" "yourFile.txt" >nul