我在SQL Server2008中有一个用于批量加载的xml格式化文件。我需要用TERMINATOR="\n"
替换TERMINATOR="\r\n"
的实例。我正在尝试使用命令行工具FART.exe
。无论我怎么尝试,似乎都不能让实用程序识别字符。
我尝试过作为find字符串和replace字符串的组合进行传递:
\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后的命令窗口输出。很明显,该实用程序对另一个屏幕截图中的红色下划线有问题:
发布于 2016-03-29 03:10:47
要将所有\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相关的唯一限制是它一次只能处理一个文件。
用\n
替换所有\r\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 -
发布于 2019-01-18 05:53:33
最简单、最快的是fart二进制法,例如:
fart.exe -C D:\sample.txt \x0d\x0a \x0a
https://stackoverflow.com/questions/36267389
复制相似问题