假设您使用的是默认字符集为 UTF-8 的 Linux/UNIX shell:
$ echo $LANG
en_US.UTF-8
您有一个文本文件 emoji.txt,它以 UTF-8 编码:
$ file -i ./emoji.txt
./emoji.txt: text/plain; charset=utf-8
此文本文件包含一些表情符号和变体形式转义序列:
$ cat ./emoji.txt
Standard ☁
Variant form ☁️
$ uni2ascii -a B -q ./emoji.txt
Standard \x2601
Variant form \x2601\xFE0F
您想要删除两个表情符号,包括变体形式字符 (\xFE0F),因此输出应为
Standard
Variant form
你会怎么做?
更新。这个问题不是关于如何删除每行中的最后一个单词。想象一下 emoji2.txt 包含带有许多表情符号字符的大文本;其中一些后面跟着变体形式序列。
最佳答案
使用 GNU sed
和 bash
:
sed -E s/$'\u2601\uFE0F?'//g emoji.txt
关于bash - UNIX/Linux shell 脚本 : Removing variant form emoji from a text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63348123/