大家好,我一直在努力研究并想出一个干净的方法来做到这一点..
我有一个 .sql 文件,其中充满了人们从非标准化文件等复制和粘贴的错误字符,我的任务是删除因此出现的字符。
一个例子是——
“ some text here †more text
数据库很庞大,我不确定有多少非标准的 utf-8 字符......那么是否有一个 sed
参数可以删除所有非标准字符(因为我不知道到底有哪些字符)?
这些 block 是数据库中的标准 HTML 和 CSS block ,因此无论如何允许的字符数量有限,所以我应该使用大量正则表达式 IE 走这条路
[^a-zA-Z0-9`~!@#$%^&*()_\-+={[}\] \\|:;"'<,>.?\/]
因为这是存储的 HTML
和 CSS
我不认为需要保留制表符和空格(或者他们会把它保存在文件中)。
sed
语句中的上述 regex
看起来很奇怪,有点 hack-ish。
是否有更简洁的方法来搜索并删除这些字符?
我已经尝试了很多 SO 答案的建议,但大多数答案只包含一个或几个字符..我想删除任何不是“标准”utf-8 的东西
最佳答案
我认为这会成功:
iconv -f ORIGINAL_ENCORDING (utf-8) -t utf-8 -c yourfile.sql
关于html - sed -- 删除非标准字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42703407/