我在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的命令窗口输出。很明显,该实用程序在其他屏幕截图中出现了带红色下划线的问题:
答案 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