我在预定义目录中有一些文本文件,文件以* .edi结尾 它们中的每一个都在一个单独的行中引用:
data_file file_n.data
我必须将每个.edi文件中的这一行转换为类似
data_file 'another_directory/file_n.data'
我最后会添加'another_directory /' 因为数据将在另一个目录中。 我有200个.edi文件文件,手动处理它们很繁琐! regexp的任何帮助? 顺便说一句,我使用UltraEdit引擎进行regexp。
a_dir/
file1.edi
file2.edi
file3.edi
...
并且每个文件引用一行:
data file file_n.data
变为:--->
data_file 'another_directory/file_n.data'
答案 0 :(得分:1)
使用Perl正则表达式引擎在搜索菜单中执行替换文件:
查找
^(\s*data file\s+)(.+)$
替换:
\1'another_directory/\2'
在文件/类型中:
*.edi
目录:
<whatever the directory with all your edi files is>
(在UltraEdit中测试,对我有用)
答案 1 :(得分:0)
使用空格替换空格,然后使用another_directory/
使用适当的元字符替换/
。
答案 2 :(得分:0)
ultraedit已找到并替换文件。如果你在v13 +它也有PERL兼容的正则表达式。
如果启用PERL兼容正则表达式,则可以使用:
查找内容:“(file_ \ d + .data)”(不带双引号)
替换为:“'another_directory / $ 1'”(不带双引号)
对于旧式UltraEdit语法,正则表达式使用:
查找内容:“^(file_ [0-9] + ^。data ^)”
替换为:“'another_directory / ^ 1'”
(没有引号,但前导空格很重要)
答案 3 :(得分:0)
如果我使用的是RegexBuddy的GREP工具,我会这样做:
匹配模式:
^(data file\s{3})(file_n\.data)$
选项:强>
^ $在换行符时匹配。
替换模式:
\1'another_directory/\2'
我认为UltraEdit的工作原理基本相同。