如何使用FART.exe将\ r \ n(文字)替换为\ n

时间:2016-03-28 17:24:40

标签: replace grep windows-console

我在SQL Server 2008中有一个用于批量加载的xml格式文件。我需要用TERMINATOR="\r\n"替换TERMINATOR="\n"的实例。我试图使用命令行实用程序FART.exe。无论我如何尝试,我似乎无法使用该实用程序来识别角色。

我试过传递查找字符串的组合并替换字符串:

\r\n \n
"\r\n" "\n"
""\r\n"" ""\n""
^\r^\n ^\n
TERMINATOR=""\r\n"" TERMINATOR=""\n""
TERMINATOR=""^\r^\n"" TERMINATOR=""^\n""

以及许多更多组合。我查阅的关于逃避DOS命令的每篇文章都会告诉我一些不同的内容,而且我已经尝试过所有这些但没有运气的文章。真正奇怪的是,不仅使用\r\n \n不能做我想做的事情(替换文字),而且它不会替换文件中每行末尾的回车符+换行符。

我需要编辑的格式文件。我认为我用红色加下划线的行引起了一个问题:

调用Jrepl的命令窗口输出。很明显,该实用程序在其他屏幕截图中出现了带红色下划线的问题:

2 个答案:

答案 0 :(得分:1)

要用\r\n替换所有\n文字,只需使用:

fart yourFile.xml \r\n \n

要仅在较大的字符串TERMINATOR="\r\n"内替换,请使用:

fart -C yourfile.xml TERMINATOR=\x22\\r\\n\x22 TERMINATOR=\x22\\n\x22

我更喜欢使用JREPL.BAT - 它比FART强大得多,因为它可以使用正则表达式,而且还有许多其他高级功能。相对于FART的唯一限制是它一次只能处理一个文件。

\r\n替换所有\n文字:

jrepl \r\n \n /l /f yourFile.xml /o -

更具体地使用文字搜索字符串,其引号已转义为\q,反斜杠为\\

jrepl "TERMINATOR=\q\\r\\n\q" "TERMINATOR=\q\\n\q" /x /l /f yourFile.xml /o -

或使用正则表达式:

jrepl "(TERMINATOR=\q)\\r(?=\\n\q)" "$1" /x /f yourFile.xml /o -

答案 1 :(得分:0)

最简单快捷的放屁二进制方法,例如:

fart.exe -C D:\sample.txt \x0d\x0a \x0a