Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 带UTF8输入的Sed_Bash_Utf 8_Sed - Fatal编程技术网

Bash 带UTF8输入的Sed

Bash 带UTF8输入的Sed,bash,utf-8,sed,Bash,Utf 8,Sed,我在上学的工作上需要帮助。 我从stackoverflow得到了这个脚本,它将字符串的第一个字符大写 sed -r "s/(^|\.\s+)./\U&/g" <$temp_file_2 但输出是ANSI编码,或者是什么。文件-bi显示未知的8位编码格式 将utf-8中的输出获取到文件是否有任何更改 注意:此sed命令用于将行的第一个字符大写。支持特殊的斯洛伐克字符,如ťťýýáíď等 注意:文件必须是UTF-8,因为内容被插入mysql数据库。 正在转换文件导致信息丢失。请尝试此

我在上学的工作上需要帮助。 我从stackoverflow得到了这个脚本,它将字符串的第一个字符大写

sed -r "s/(^|\.\s+)./\U&/g" <$temp_file_2
但输出是ANSI编码,或者是什么。文件-bi显示未知的8位编码格式

将utf-8中的输出获取到文件是否有任何更改

注意:此sed命令用于将行的第一个字符大写。支持特殊的斯洛伐克字符,如ťťýýáíď等 注意:文件必须是UTF-8,因为内容被插入mysql数据库。 正在转换文件导致信息丢失。

请尝试此操作

  cat <src> | iconv -f <srcenc> | sed .... | iconv -t <targetenc> > target
要查看您是否正确猜测了输入文件的编码,请检查

cat <src> | iconv -f <srcenc> 

sed不能在字符编码之间转换;您需要一个像iconv这样的独立程序来首先转换输入文件,但之后我会将文件内容放入mysql数据库。该文件包含像ďľťťýáíé这样的特殊字符,不能插入mysql。只有当输入文件是utf8格式时,我才幸运。我看到了一些使用pear-pe和sed命令的解决方案,但我不知道如何使用它。您是否正在尝试将temp_文件2转换为UTF-8,或将其从UTF-8转换为ASCII?在转换过程中丢失了一些信息?我尝试了转换,但丢失了一些字符。我都需要。
cat <src> | iconv -f <srcenc>