我最近问了一个问题,该如何在我的CSV媒体数据库文件上执行一个小的“查找和替换”任务(我每天必须在工作中执行此任务)。如果有人对细节感兴趣,可以在这里回答问题。
我现在希望能够简单地将CSV文件拖放到桌面上的一个小滴上,该小滴可以快速,轻松地执行“查找和替换记事本++”任务,因此我可以将任务分配给更多的下级工作人员离开。
问题:
如何在Win 7中创建一个Droplet,对放置在其上的任何CSV文件运行以下“查找和替换”命令?
文本:
找什么:
^([^,]*,(\d\d)_[^,]*,[^,]*)(?<!_\d\d),
用。。。来代替:
$1_$2,
检查:环绕
检查:正则表达式
运行:全部替换
我在想这可能是一个批处理脚本(或任何种类的脚本),只需将其拖放到脚本上即可将我的CSV文件作为输入文件接收。
Windows 7附带了PowerShell v2,该版本支持带有反面外观的正则表达式。
如果我正确地解释了RegEx99_
,只要没有数字,您就希望将引导第二个字段的两位数字也拖到第三个字段的_99
后面。并保留其他行/行的其余部分。
用作放下目标的批处理文件(还处理多个文件):
:: SO_1352996.cmd
@Echo off
:Loop
If "%~1" equ "" goto :Eof
If not exist "%~1" (shift & goto :Loop)
Ren "%~f1" "%~n1_Original%~x1"
:: Use PowerShell as a tool to do the replace.
Powershell -NoP -C "(Get-Content '%~dpn1_Original%~x1') -replace '^([^,]*,(\d\d)_[^,]*,[^,]*)(?<!_\d\d),','$1_$2,' | Set-Content '%~f1'
Shift
Goto :Loop
file.csv之前
test,12_blah,blubb,anything
test,34_blah,blu_34,doesn't matter
test,56_foo,bar,nevermind
并放在上述批次上之后。
test,12_blah,blubb_12,anything
test,34_blah,blu_34,doesn't matter
test,56_foo,bar_56,nevermind
原始文件以附加扩展名保存 .bak
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句