这是一个文本文件的内容,我只想保留BMP。
这是无效的字符
答案1
通过不支持补充多语言平面的字符集(例如 UCS-2)传递它。
$ iconv -f utf-8 -t ucs-2 -c input.txt | iconv -f ucs-2 -t utf-8
这是无效的字符
这是正常的字符 哈
答案2
无需借助技巧,perl 就能够完全满足您的要求:
$ perl -Mopen=locale -ne 's/[^\x{1}-\x{FFFF}]//g; print' infile
这是无效的字符
这是正常的字符 哈
请看一下这个答案以获得更多解决方案。