1

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

P4657_1
P1352_1
P3126_1

等等。

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

任何人都可以帮忙吗?

4

4 回答 4

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

凭借第一个替换开始 P 被击中,通过第二个最终 _1 被击中,你就完成了。

于 2013-05-29T09:38:05.780 回答
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
)
于 2013-05-29T12:30:48.777 回答
0

您显然可以使用echo 。因此,使用type打印您的文件,并且对于每一行,将该行分配给一个变量,编辑该变量,然后回显该变量。

于 2013-05-29T12:32:44.637 回答
0

有关修改文本文件的选项列表,请参阅如何使用 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
于 2013-05-29T12:11:48.053 回答