dMe*_*dia 2 linux sed regular-expression
例如,我有一个大(~180MB)的 xml 文件,其中包含一些错误的字符
<Data ss:Type="String">7402953^@</Data>
Run Code Online (Sandbox Code Playgroud)
该^@
部分应该被删除。应该完成的工作
sed -i 's/\^@//g' /tmp/large.xml
Run Code Online (Sandbox Code Playgroud)
但由于某些未知原因,如果字符串位于我的大型 xml 文件中,则它无法按预期工作。如果文件的大小只有几 KB,则sed
可以完美运行。
它看起来像一个错误,但我认为不可能,因为任务很明显。我做错了什么?
从你的问题来看(因为没有例子),我会说^@
在大文件中实际上不是两个字符(^
和@
),而是那些不可打印的字符之一。
您可以使用Ctrl + v
+在终端中输入该不可打印字符Ctrl + 2
。
使用在sed
代替字符^
和@
它应该是罚款。
还要删除转义序列,因为不可打印字符不需要它。