请各路大神出个方案;比如我想写个脚本来判断有文字的字段就过滤文字内容,没有文字的则过滤respContent:这个字段。
[mopush@nj-mopps02 mmwiard]$ zcat mmwiard.log.20171201*.bak.gz|grep -i hebei|grep -i fail|awk -F '|' '{print $12}' | sort |uniq -c |sort -rn |head
365 respContent:"status":{"callnumber":"10086","statusdesc":"暂无套餐信息","statuscode":2039}
107 respContent:
18 respContent:Business failed, trans response code is : [2039], RspDesc is [无套餐资源]
16 respContent:{"result":null,"des":"内部服务错误30023, 请联系开放平台管理员","code":"30023"}
1 respContent:内部服务错误30023, 请联系开放平台管理员
echo 'zhangsan张三' |awk '{print gensub(/[!-~]/,"","g",$0)}'
张三
echo 'zhangsan张三' |awk '{print gensub(/[^!-~]/,"","g",$0)}'
zhangsan
ascii 码表顺序上, ! - ~ 基本就涵盖了全部可见字符了,这个编码之外的就是中文了(对这个例子而言)追问
张三
echo 'zhangsan张三' |awk '{print gensub(/[^!-~]/,"","g",$0)}'
zhangsan
ascii 码表顺序上, ! - ~ 基本就涵盖了全部可见字符了,这个编码之外的就是中文了(对这个例子而言)追问
谢谢!可是在我这里执行这指令却不行呢?返回这报错
awk: fatal: Invalid range end: /[!-~]/
温馨提示:答案为网友推荐,仅供参考
第1个回答 2018-05-10
“/[!-~]/”换成“/[\u4e00-\u9fa5]/”吧