Chinaunix

标题: 删除某一固定字段包含汉字的行 [打印本页]

作者: wangdapeng1973    时间: 2007-09-19 15:58
标题: 删除某一固定字段包含汉字的行
例如有这样一个文件
a|b|c|d|
e|f|g|h字|
j|k|l|5汉|
.
.
.
w|x|y|z|
怎样用shell或awk去掉包含汉字的行
谢谢
作者: sywolf    时间: 2007-09-19 16:07
sed 's/[^0-9a-z|\.]//g'
作者: mxbao    时间: 2007-09-19 16:14
sed '/[^0-9a-z|\.]/d'
作者: linux_paly    时间: 2007-09-19 16:34
sed  '/[^a-z|.]/'d  filename

[ 本帖最后由 linux_paly 于 2007-9-19 16:44 编辑 ]
作者: kenancola    时间: 2007-09-19 18:30
没太看明白阿 能解释一下吗?
作者: kenancola    时间: 2007-09-19 18:40
能不能有一个通用去掉汉字行的脚本?
作者: shk2016    时间: 2007-09-19 19:36
sed 's/[^0-9a-z|\.]//g'     删除汉字
sed '/[^0-9a-z|\.]/d'  删除包括汉字的行
sed  '/[^a-z|.]/'d   删除包括汉字的行
作者: 寂寞烈火    时间: 2007-09-19 22:11
原帖由 kenancola 于 2007-9-19 18:30 发表
没太看明白阿 能解释一下吗?

参考下列链接中的正则表达式
http://bbs.chinaunix.net/thread-674903-1-1.html
作者: walkerxk    时间: 2007-09-20 09:28
原帖由 shk2016 于 2007-9-19 19:36 发表
sed 's/[^0-9a-z|\.]//g'     删除汉字
sed '/[^0-9a-z|\.]/d'  删除包括汉字的行
sed  '/[^a-z|.]/'d   删除包括汉字的行

最后一个会把包含数字的行也删掉,而且#$%这些没有考虑进去,并不是除了a-z,0-9和|以外都是汉字,楼主应该根据自己的情况来判断。
作者: 寂寞烈火    时间: 2007-09-20 11:01

  1. while read line;do echo $line|od -c|grep -q '\b[0-9]\{3\}\b' >/dev/null||echo $line;done<urfile
复制代码

效率不高, 将就着用吧

[ 本帖最后由 寂寞烈火 于 2007-9-20 11:06 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2