shell脚本gbk环境下搜索utf-8日志

方法1:

使用linux iconv将utf-8日志转为gbk编码的文件,然后gbk环境下统计数据。

utf8(){
    LOG_FILE="/lcims/crontab_shell/outfile/lan_wlan_wo/SocketMain.log141114_lan1"
    LOG_FILE_TMP="/lcims/crontab_shell/outfile/lan_wlan_wo/141114_lan1"
    echo "utf-8-----"

    #only linux os use iconv
    iconv -f utf-8 -t gb2312 $LOG_FILE >$LOG_FILE_TMP
    echo "--------result"

    more $LOG_FILE_TMP|  grep "接收"|head -4;
}

gbk(){
    echo "gbk----"
    LOG_FILE="/lcims/crontab_shell/outfile/lan_wlan_wo/SocketMain.log141114_wlan2"
    LANG=zh_CN.gb18030;export LANG;
    more $LOG_FILE|  grep "接收"|head -4;
}

utf8
gbk

方法2:

在gbk环境下,通过将gbk中文字符串转为utf-8字符串,然后通过utf-8字符串去搜索utf-8的日志文件。

utf8(){
    LANG=zh_CN.utf8;export LANG;
    LOG_FILE="/lcims/crontab_shell/outfile/lan_wlan_wo/SocketMain.log141114_lan1"
    LOG_FILE_TMP="/lcims/crontab_shell/outfile/lan_wlan_wo/141114_lan1"
    echo "utf-8-----"

    more $LOG_FILE|  grep `perl -e 'use Encode;$a=encode("utf-8",decode("gb2312","接收"));print  $a'`|head -4;
}

utf8
				
时间: 2024-09-30 03:31:15

shell脚本gbk环境下搜索utf-8日志的相关文章

Linux Shell脚本生产环境下安全地删除文件

脚本编写背景 无论是生产环境.测试环境还是开发环境,经常需要使用rm命令删除&批量一些"重要"目录下的文件.按照Linux的哲学"小即是美"(一个程序只做一件事)+"用户清楚自己做什么"(用户知道自己想要什么,也明白自己在做什么,并且会为自己的行为负责),那么用户在执行rm时,一定要知道自己的操作可能引起的后果,因此"三思而后行"真的很重要.但这对于一部分人来讲,真的可能是灾难性的,手抖.手贱和任何错误的操作(在路径分

shell脚本在cygwin下运行报错: $'\r': command not found

在cygwin 下运行shell脚本,出现"$'\r': command not found",这是win dos与Unix文本编辑方式不同造成的.可以使用cygwin工具dos2unix将script改为unix格式. $ dos2unix test.sh dos2unix: converting file test.sh to UNIX format ... $ sh test.sh 如此便可解决. 参见:http://lxs647.iteye.com/blog/2084375 s

shell脚本开发环境的配置和优化实践

vim路径等配置知识的整理见表: 相关配置文件 功能描述 .viminfo 用户使用vim的操作历史 .vimrc 当前用户vim的配置文件 /etc/vimrc 系统全局vim的配置文件 /usr/share/vim/vim74/colors/ 配色模板文件存放路径 .vimrc 的配置内容如下: "~/.vimrc " vim config file " date 2018-01-07 " blog:http://aqiang.blog.51cto.com &q

《shell编程实战》第2章shell脚本入门(下)

1.sh和./的区别[[email protected] ~]# cat test.sh echo I am thzzc1994[[email protected] ~]# sh test.sh I am thzzc1994[[email protected] ~]# bash test.sh I am thzzc1994[[email protected] ~]# ./test.sh-bash: ./test.sh: 权限不够想要让./可以执行,需要在用户位加权限x(可执行exec的意思),在

Linux shell脚本中如何读取跟shell脚本同一目录下的配置文件

配置文件如下 ##########BACKUP MYSQL CONFIG####### #database name db_name=test db_user=root db_pass=123456 #####backup day config begin ##### day_backupdir=/home/backup/db/day day_backup_fix=day day_interval=1 #####backup day config end ####### #####backup 

Linux入门第五天——shell脚本入门(下)基础语法之调试debug

一.如何debug 1.通过sh命令的参数: sh [-nvx] scripts.sh 选项与参数: -n :不要执行 script,仅查询语法的问题: -v :再执行 sccript 前,先将 scripts 的内容输出到屏幕上: -x :将使用到的 script 内容显示到屏幕上,这是很有用的参数! 示例1:no news is good news [[email protected] tmp]# sh -n add1_100.sh [[email protected] tmp]# 示例2:

shell 脚本---每隔几个小时查看日志文件中包含某些字符串的行数

在linux生产环境下,有如下这样的一个平常运维需要的工作. 每隔一段时间,比如两个小时,就要对每秒都要产生日志的日志文件(这里假设为testfile.out,其绝对路径为/home/panlm/shellpra/testfile.out)进行一个操作,这个操作是将日志中包含某些字符串的行给单独打印出来,并重新放在一个文件(这里的文件假设为out.log)中.这些需要匹配的字符串可以按这种方式表示"0x216000ab"其中ab为01到18的连续整数. 实现这样一个要求的做法主要有两步

Python开发程序:生成环境下统计网站访问日志信息

日志实时分析系统 生产环境下有需求:要每搁五分钟统计下这段时间内的网站访问量.UV.独立IP等信息,用直观的数据表格表现出来 环境描述: 网站为Nginx服务,系统每日凌晨会对日志进行分割,拷贝到其他位置,当前日志清空 NGINX日志配置信息: http { log_format main '$remote_addr - [$time_local] "$request" ' ' - $status "User_Cookie:$guid" '; } server {

windows下编写的Shell脚本在Linux下运行错误的解决方法

出现这种错误的原因:CR/LF问题,在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令. 两种解决方法: 1.将格式转换为UNIX,“编辑->格式转换(CR/LF)->UNIX”,这样Linux下就能按unix的格式保存文件 2.在vim中,输入:set ff=unix,然后:wq,同样也是转换成unix的格式 cat