Azi*_*ziz 24 windows regex command-line find-and-replace
是否可以从命令行替换正则表达式?现在我正在使用记事本++来做到这一点。在命令行中,我只能使用 FINDSTR 至极只能定位已加工的文件/行
编辑:
也许可以制作 VB 脚本并从 cmd 运行它?我刚刚创建了一个包含内容的文件“hi.vbs”
Msgbox "Hi Buddy"
Run Code Online (Sandbox Code Playgroud)
然后 cmd 允许我通过从命令行输入“hi”来直接运行它。
因此,如果批处理脚本无法实现,那么我可以通过批处理使用 VB 脚本。或者..?
小智 27
我已经为 Windows 编写了一个免费的命令行工具来执行此操作。它叫做rxrepl,它支持 Unicode 和文件搜索。有些人可能会发现它是一个有用的工具。
rxrepl 是一个 Microsoft Windows 命令行工具,用于使用 Perl 兼容正则表达式 (PCRE) 搜索和替换文本文件中的文本。
它具有以下特点:
- 使用 Perl 兼容的正则表达式进行搜索
- 在替换文本中使用组匹配
- 支持 Windows 和 Unix 行尾
- Unicode 支持
- 接受多个搜索/替换参数
- 选项可以在选项文件中提供
- 扫描文件
- 预览模式
- 行和全文件匹配模式
Ian*_*ley 14
脚本专家介绍了如何在 PowerShell 中执行此操作(在最新的 Windows 操作系统上无需额外下载,您可能已经安装了它)。
启动它,运行以下命令(*
用 a替换a @
):
(Get-Content C:\Scripts\Test.txt) |
Foreach-Object {$_ -replace "\*", "@"} |
Set-Content C:\Scripts\Test.txt
Run Code Online (Sandbox Code Playgroud)
这支持.NET 正则表达式,包括正面和负面的前瞻,以及 Notepad++ 在 6.x 版之前不支持正则表达式的所有方式(就像我喜欢 notepad++)。
bar*_*lop 12
转到这里
http://gnuwin32.sourceforge.net/packages.html
向下滚动到 SED。在使用时也下载 coreutils。
此命令将全局替换 a 和 b,并在每一行上。所以不仅仅是第一次出现。
例如使用 sed "s/a/b/g" a.txt
C:\>type a.txt
aaaa
aaa
C:\>sed "s/a/b/" a.txt
baaa
baa
C:\>sed "s/a/b/g" a.txt
bbbb
bbb
C:\>
Run Code Online (Sandbox Code Playgroud)
VBScript 确实支持正则表达式,你可以用它来查找和替换。
dim re, s
set re = new RegExp
re.Pattern="in"
re.Global=True 'false is default
s="bin din in"
MsgBox re.Replace(s,"xxx")
Run Code Online (Sandbox Code Playgroud)
显示 bxxx dxxx xxx
归档时间: |
|
查看次数: |
77989 次 |
最近记录: |