添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
失落的小虾米  ·  YAML Sequence - ...·  6 月前    · 
呐喊的小蝌蚪  ·  .Net Core WPF ...·  1 年前    · 
失眠的啤酒  ·  [Python] ...·  1 年前    · 

需求:找出utf8文件中所有的中文

处理一个项目代表时, 有时候你需要找到项目中所有包含中文的文件。 用sublime或文本编辑器可以轻松搞定。
这篇文章使用grep来匹配utf8文件的汉字。

各系统集成的grep区别

mac系统

/usr/local/var » grep --version                                                                  owen@Owen
grep (BSD grep) 2.5.1-FreeBSD

centos系统

[root@iZZ Command]# grep --version
grep (GNU grep) 2.20
GPLv3+ 许可证: GNU 通用公共许可证第三版或更高版本 <http://gnu.org/licenses/gpl.html>。
这是自由软件: 您可自由更改并重新分发它。
在法律所允许的范围内,不附带任何担保条款。
作者 Mike Haertel 和 其余作者请参看 <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>

mac系统自带的grep是BSD grep, 它不支持-P选项
GNU grep 才支持-P选项

-P 选项代表啥:PCRE (“Perl-compatible regular expressions”)

mac如何才能做到查找文本中的所有中文呢?

  • brew install grep 替换原grep
  • brew install pcre , 使用 pcregrep 而非grep

安装pcre要避免什么?
安装pcre要其支持utf8,否则输出将会是乱码
在这里插入图片描述

在mac系统自带的grep不要尝试什么16进制匹配来匹配所有中文,费时费力不能达目的, 直接替换成GUN grep是正解

mac安装GUN grep笔记

  • brew install grep
  • 在profile编辑PATH
  • source .profile使当前terminal就生效,或者重新启动一个terminal
brew install grep                                                               owen@Owen
All commands have been installed with the prefix "g".
If you need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:
  PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
==> Summary
------------------------------------------------------------
» ls /usr/local/opt/grep/libexec/gnubin    
egrep fgrep grep
------------------------------------------------------------
 » /usr/local/opt/grep/libexec/gnubin/grep --version 
grep (GNU grep) 3.3

grep如何匹配文本中的所有中文字符呢?

前提是你使用GUN grep ,非BSD grep

grep --color='auto' -P -n "[\x80-\xFF]" file.xml
grep --color='auto' -P -n "[^\x00-\x7F]" file.xml

grep匹配utf8中文说明

假如有这样一个utf8文本

$str = '123abCD你和我';
字段串的二进制如下
00110001  =  1
00110010  =  2
00110011  =  3
01100001  =  a
01100010  =  b
01000011  =  C
01000100  =  D
11100100 10111101 10100000 =11100101 10010010 10001100 =11100110 10001000 10010001 =

grep是按byte字节匹配的内容的, utf8编码小于01111111的二进制还是ASCII编码的内容,也就是常用的0-9a-zA-Z和特殊字段不可打印字符等。
utf8的表示方式:
0xxxxxxx // 原ASCII字符的表示
110xxxxx 10xxxxxx // 非ASCII字符
1110xxxx 10xxxxxx 10xxxxxx // 非ASCII字符
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx // 非ASCII字符

第一个字节以“110”开头,后面跟一组字节以“10开头”;
第一个字节以“1110”开头,后面跟两组字节以“10”开头;
以前类推。

grep --color='auto' -P -n "[\x80-\xFF]"

\x代表16进制,
(十六进制)80 = (二进制) 10000000
(十六进制)FF = (二进制) 11111111

这个表达式意味着匹配所有utf8编码中非ASCII字符,正好也就是文件中的汉字。

扩展,linux查看二进制,16进制的命令

  • od
  • xxd
  • hexdump 把文档以16进制输出

How do I grep for all non-ASCII characters?
https://stackoverflow.com/questions/3001177/how-do-i-grep-for-all-non-ascii-characters

文章目录需求:找出文件中所有的中文各系统集成的grep区别mac系统centos系统经验mac如何才能做到查找文本中的所有中文呢?扩展,linux查看二进制,16进制的命令grep如何匹配文本中的所有中文字符呢?参考需求:找出文件中所有的中文找出代码中所有的中文,而非指定的几个中文单词各系统集成的grep区别mac系统/usr/local/var » grep --version ... $ sudo apt install git build-essential libtool automake # or equivalent $ git clone --recursive https://github.com/adsr/mle.git $ cd mle $ make mle_vendor=1 要构建完全静态的二进制文件,请尝试m 对于不习惯英文的人可能想将系统由英文转成中文;而对于考虑客户端如果没正确配置,中文目录可能显示为乱码的人则可能宁愿将系统中文转成英文。 中文切换为英文,实际就是将LANG的值由zh_CN-UTF8字符集改为en_US-UTF8字符集;类似的,英文切换为中文,就是将LANG的值由en_US-UTF8改为zh_CN-UTF8。 本文只以中文切换为英文为例。 二、中文环境换为英文环境 当前桌面显示如下: 用户家目录显示如下: 2.1使用locale查看当前使用的编码和字符集 locale 2.2 使用locale -a查看当前支持的编码和字符集 locale -a | grep
## 项目说明 FlyCms 是一个类似知乎以问答为基础的完全开源的JAVA语言开发的社交网络建站程序,基于 Spring Boot+Bootstrap3+MyBatis+MYSQL+Solr+Ehcache 应用架构,专注于社区内容的整理、归类和检索,它集合了问答,digg,wiki 等多个程序的优点,帮助用户轻松搭建专业的知识库和在线问答社区。 业务模块包括:权限管理,会员管理,角色管理,定时任务管理(调度管理),问答管理,文章管理,分享管理,短信接口管理和邮件系统发送(注册、找回密码、邮件订阅),跨域登录,消息推送,全文检索、前端国际化等等众多模块等您自己来体验! ##### 开放源码,便捷开发 基于Spring Boot版本开发,利用成熟开发技术,开放系统源码和开发文档,让二次开发更容易。 ##### 弹性设计,任性定制 UI设计简约又灵活, Bootstrap定制模板让用户自由发挥,让自己的社区更具独特个性。 ##### 管理后台,轻松掌控 管理后台功能实用简约,只需轻点功能开关,即可完成系统配置,属于你的知识社区一挥而就。 ##### 轻快智能,更懂社交 FlyCms比论坛更开放,比资讯网站更了解用户,以用户为中心,更懂社交,更注重内容的分析和分享。 ##### 用戶互助,精准推送 用户之间相互解答,分享产品使用心得,只向用户推送自己关心的消息,扩大价值,压缩干扰。 > 使用说明:请保留页面底部的 *powered by 28844. com* 感谢支持 在线地址: [28844.com](http://www.28844.com) | [文档地址](https://www.28844.com/) ## 技术栈 - JDK8 - Spring-Boot - MyBatis - Freemarker - MySQL - Bootstrap3 - Solr - Quartz - i18n - Ehcache ## 特性 - 社区兼容性(IE9+) - 页面自适应布局 - 本地登录,手机注册, 邮件注册 - 登录时有验证码,尝试登录次数的限制 - 使用 `Spring-Boot` 开发 - MyBatis操作数据库 - 目前sql语句只支持MySQL,如果要切换数据库,需要手动修改代码 - Solr提供搜索和前台部分页面列表查询和分页 ## 网站功能 ##### 前台功能 - 问答栏目,用户可发布奖励积分邀请回答问题 - 答案发布管理统计等等; - 文章栏目,专家专栏,后台设置专家组可发布专业性文章资讯 - 文章栏目可分类,文章栏目目前可无限极分类 - 分享栏目,用户可分享发布如百度网盘资源地址,电影地址等等,赚取积分 - 各个栏目话题聚合内容,话题可编辑删除,审核; - 用户个人首页,可查看自己关注的用户和自己发布的内容 - 用户内容收藏 - 用户积分管理充值 - 用户绑定手机号码 - 用户绑定邮箱地址 - 用户密码找回 - 用户手机号码注册,需后台绑定运营商API; - 用户邀请注册奖励 ##### 网站后台 - 网站运营基本信息编辑 - 用户注册相关信息管理 - 用户手机运营商信息管理(目前只支持阿里大鱼) - 网站发送邮箱绑定,邮箱模板设置 - 会员信息管理、审核 - 问答管理 - 答案管理 - 文章管理、文章分类 - 话题管理 - 分享管理 - 友情链接管理 - 积分奖励规则管理 - 违禁关键词、敏感词过滤设置 - 增加定时任务管理,通过后台设置启动、关闭,执行任务日志 #### 二次开发准备 1. 开发环境要在IDE里装上lombok插件,否则编译器会报错 2. 程序部署建议使用Maven的assembly插件实现自定义打包方式 3. 项目已经接入了solr,程序安装需要先运行solr,solr已调试好,可直接启动,使用方法可访问官网查看; 4. 项目用到了阿里大于jar包,Maven时无法使用,可以下载doc/dysmsapi.zip,然后放本地的Maven的.m2\repository\com\alibaba\aliyun\目录下 5. 搜索和首页列表后期大部分前台列表准备都使用solr,所以要先下载目录下的solr,然后运行后启动程序,不然报错! #### solr原来的目录里上传的时候jar文件无法上传,压缩后提示上传文件不能大于10MB ## 如果需要的话进群空间下载,QQ群:`211378508` ## Windows下solr启动 - 比如solr放E:/盘下面,首先打开CMD窗口 - `e: `回车 - `cd e:/solr/bin` 回车 - `solr start -p 8983` 回车,等待启动成功
#按照以前学的 /error/,/3333/d;q是没用的。 要使用sed的标签功能和模式空间。 作者:马龙帅 #这个用awk做的话,逻辑会更清晰,从error开始读取,并不断追加到变量中,遇到3333就清空变量,遇到最后一行,就输出,虽然sed命令的逻辑也是 sed '/error/{:x;N 最近在解析.vcf文件,想提取其中的姓名和邮箱地址,发现linux下匹配中文与java下 匹配中文有所不一样,java下匹配格式为[\u4e00-\u9fa5],注意java下有的特殊字符需要 转义,也就是再加一个\。 但是,当我将此格式用于grep命令中时,发现失效了,出来的是全部的字符,感觉
一般情况下linux默认是utf-8的编码格式,但windows下是GBK或GB2312格式的编码,以及source insight不支持utf-8,通过共享的形式编辑linux里的代码会保存成GB2312格式,这样通过grep -rn '中文' * 是无法把GB2312格式文件中的‘中文’检索出来的。 网上搜索很多,主要是说:当要查找汉字“中文”(utf-8编码和gb2312编码分别是E4B8ADE69687和D6D0CEC4)时,使用grep -rnP "\xE4\xB8\xAD\xE...
youwen21: node attributes fixedsize, fontname, fontsize, height, label, style and width. 所以可以的 GraphViz DOT有向图 (三)node节点丰富内容 Runner00001: 您好,想请教一下,这里面的node可以调整设置其大小吗? mac Apple M1 在根目录无法创建文件和文件夹 mkdir: /data : Read-only file system youwen21: Apple M1 : 启动长按电源键不松手进recovery