如何检入已经由Python脚本生成的字符串的linux shell编码
我运行一个Python脚本,该脚本生成一个字符串,然后使用该字符串执行一个shell脚本。 我想使用linux shell检查该字符串的编码,但不将该字符串写入文件(磁盘操作运行缓慢)。 是否可以只使用RAM检查Linux(Ubuntu)中字符串的编码? 比如: 检查编码“使用随机编码的我的字符串”如何检入已经由Python脚本生成的字符串的linux shell编码,python,linux,string,shell,encoding,Python,Linux,String,Shell,Encoding,我运行一个Python脚本,该脚本生成一个字符串,然后使用该字符串执行一个shell脚本。 我想使用linux shell检查该字符串的编码,但不将该字符串写入文件(磁盘操作运行缓慢)。 是否可以只使用RAM检查Linux(Ubuntu)中字符串的编码? 比如: 检查编码“使用随机编码的我的字符串” Python检查编码脚本也很慢。试试文件实用程序。通过使用带有-选项的echo管道到实用程序,可以将任何字符串作为文件参数传递到文件(许多命令使用连字符(-)代替文件名作为参数,以指示输入何时应来自
Python检查编码脚本也很慢。试试文件实用程序。通过使用带有
-
选项的echo
管道到实用程序,可以将任何字符串作为文件参数传递到文件(许多命令使用连字符(-)代替文件名作为参数,以指示输入何时应来自标准输入而不是文件):
将管道连接至sed:
:~ $ echo "тест" | file -i - | sed 's/.*charset=\(.*\)/\1/'
utf-8
或者到awk(当然可以混合):
您还可以使用python模块。Chardet附带一个命令行脚本,用于报告一个或多个文件的编码。只需使用以下软件安装:
pip install chardet
并与来自echo的管道一起使用:
:~ $ echo "тест" | chardetect
<stdin>: utf-8 with confidence 0.938125
:~$echo“|С|”chardetect
:utf-8,置信度为0.938125
您所说的“检查编码”是什么意思?您只想知道字节在某些编码中是否是有效字符串?(对于UTF-8以外的大多数编码,几乎任何字节字符串都是有效字符串——这对人类来说可能没有任何意义,但您将如何对此进行测试?)
pip install chardet
:~ $ echo "тест" | chardetect
<stdin>: utf-8 with confidence 0.938125