Chinaunix

标题: 一个awk模式匹配问题 [打印本页]

作者: 风一样的男子1    时间: 2008-03-17 17:27
标题: 一个awk模式匹配问题
cat test
111
234
aaa
ad3

我想得到一个字符连续出现3次的记录,即
111
aaa

求用awk实现的写法,谢谢!
作者: davistar    时间: 2008-03-17 17:35
awk 'BEGIN{FS=""}{if($1==$2 && $2==$3)print}'  file
作者: 风一样的男子1    时间: 2008-03-17 18:11
原帖由 davistar 于 2008-3-17 17:35 发表
awk 'BEGIN{FS=""}{if($1==$2 && $2==$3)print}'  file



FS=""

这样设置以后是把一行当成一列呢?
还是把一个字符当成一列?

经我实验

echo string | awk  'BEGIN{FS=""}{print $1}'

结果会输出
string
而不是
s
作者: 寂寞烈火    时间: 2008-03-17 18:24
try:
awk '{if(substr($0,1,1)==substr($0,2,1)&&substr($0,3,1)==substr($0,2,1))print}'
作者: 风一样的男子1    时间: 2008-03-17 19:28
最后正是用

  1. awk '{if(substr($0,1,1) == substr($0,2,1) && substr($0,1,1) == substr($0,3,1) && length($0) == 3))print} test
复制代码


实现的
作者: ly5066113    时间: 2008-03-17 19:37
grep简单些:

grep '\(.\)\1\1' urfile
作者: mcolinc    时间: 2008-03-17 21:01
原帖由 ly5066113 于 2008-3-17 19:37 发表
grep简单些:

grep '\(.\)\1\1' urfile


这个够赞




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