我正在尝试从此 Youtube 文件名中删除表情符号:
وسائل الاتصال الحديث٩ٌ ? & ? ? -eYrBcHOx2Jf.mp4
我正在使用perl -p -e 's/[^[:ascii:]]//g'
但tr -dc '[:print:]'
得到了这个;
&-eYrBcHOx2Jf.mp4
如何删除表情并保留阿拉伯字符?
我正在尝试从此 Youtube 文件名中删除表情符号:
وسائل الاتصال الحديث٩ٌ ? & ? ? -eYrBcHOx2Jf.mp4
我正在使用perl -p -e 's/[^[:ascii:]]//g'
但tr -dc '[:print:]'
得到了这个;
&-eYrBcHOx2Jf.mp4
如何删除表情并保留阿拉伯字符?
我不确定 GNU 中多字节字符支持的状态
tr
。在 中,您将需要使用-C perlrun 选项
perl
至少设置支持 UTF-8 的标准输入和标准输出流。然后,您可以按照perluniprops 文档中的描述使用 unicode 属性——甚至还有一个代码点组。例如:\p{Emoji}
不幸的是,它看起来
\p{Emoji}
至少包括十进制数字——尽管您可以使用(目前处于实验阶段的)regex_sets功能排除那些数字,例如:至少在 File::Rename 版本 1.30 中,您可以通过其选项
rename
以类似于 perl 的方式使基于 perl 的命令编码感知:-C
-u
所以给出
然后
您可以改为指定字符范围以保留 ex。
或者
这似乎与角色没有同样的问题
4
。我能够使用以下方法删除表情符号并在文件名中保留阿拉伯字符
sed
:输出
我知道这可能不是最好和最干净的方法,但它解决了我当前的问题。