系统字符集导致的sed 执行完成不退出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统字符集导致的sed 执行完成不退出相关的知识,希望对你有一定的参考价值。

因网站方面需要批量替换代码,本来挺简单的一件事却整了半天!

  执行一个简单的sed批量替换脚本sh th.sh,只有二百兆的一个目录,执行了老半天,因此觉得有问题,Ctrl+c停止后,加上了 -x 输出详细信息,发现到某个文件时卡着不动,于是手动sed此文件执行完成后不退出,需要Ctrl + c停止(也试了简单字符串的替换)

  刚开始怀疑是动态文件,于是复制此文件到其他目录,但执行效果一样,将此文件copy到另一台服务器执行正常。又查了必应和Google有相同问题但没解答,尝试vim此文件,里面出现大量中文乱码,xshell的字符集调为utf-8,正常显示,但系统中文提示显示为乱码,故怀疑和系统字符集有关系(系统是之前运维同事搭的),查看/etc/sysconfig/i18n后发现 LANG="zh_CN.GB18030" ,改为 LANG="zh_CN.UTF-8" (备份之前)

技术分享

source /etc/sysconfig/i18n #使之立即生效

技术分享

再测试发现运行正常。做下记录给后面的童鞋


总结:系统字符集与html文件字符集不统一

注:查必应期间发现有部分网友shell脚本也出现非死循环不退出,或者也有关系!





本文出自 “linux_wei” 博客,请务必保留此出处http://linuxww.blog.51cto.com/11418425/1871733

以上是关于系统字符集导致的sed 执行完成不退出的主要内容,如果未能解决你的问题,请参考以下文章

打开高效文本编辑之门_Linux Sed插入追加转换退出等命令应用

Linux学习—sed

匹配时如何退出 Sed [重复]

sed

使用 python 中的 sed 替换字符串和更新文件

sed多行文本处理