分页: 1 / 1
求助:自动产生字符数组(已解)
发表于 : 2012-02-24 20:17
由 halfwolf
问题1:
用seq命令可以产生数字序列,譬如,seq 1 10;则可得到1~10的数字序列;
故,是否存在类似的命令,可以产生从a~z的字符序列;
问题2:
该问题可能比较菜,通过
grep -e 'a\{2\}' urfile
可以得到urfile中,存在两个连续 a的字符串;
故,是否存在一种通配模式,将两个以上连续相同字母的字符串全给匹配出来?
Re: 求助:自动产生字符数组
发表于 : 2012-02-24 20:42
由 lilydjwg
代码: 全选
ghc -e 'import List' -e "putStrLn $ intersperse ' ' ['a'..'z']"
代码: 全选
ruby -e 'puts ("a".."z").to_a.join(" ")'
代码: 全选
python -c "print(' '.join([chr(x) for x in range(ord('a'), ord('z')+1)]))"
Re: 求助:自动产生字符数组
发表于 : 2012-02-28 23:58
由 ubuntu_vivi
1. 可以用大括号展开
代码: 全选
echo {a..z}
echo {A..Z}
echo {b..h}
echo {1..9}
2. 没见过这样的模式。。。我觉得可以穷举一下
代码: 全选
for reg in {a..z}; do
grep -i --color=auto -E "$reg{2,}" input.txt
done
Re: 求助:自动产生字符数组
发表于 : 2012-02-29 0:17
由 lilydjwg
ubuntu_vivi 写了:1. 可以用大括号展开
代码: 全选
echo {a..z}
echo {A..Z}
echo {b..h}
echo {1..9}
原来 zsh 需要 setopt BRACE_CCL
http://stackoverflow.com/questions/2394 ... -lists-how
Re: 求助:自动产生字符数组
发表于 : 2012-02-29 10:29
由 Think1st
ubuntu_vivi 写了:1. 可以用大括号展开
代码: 全选
echo {a..z}
echo {A..Z}
echo {b..h}
echo {1..9}

Re: 求助:自动产生字符数组
发表于 : 2012-02-29 20:11
由 fnan
grep -Eo '([a-zA-Z])\1+'
# 正则基础而已。
Re: 求助:自动产生字符数组
发表于 : 2012-03-15 14:39
由 halfwolf
谢谢诸位!
最近忙,很长时间没上论坛了,呵呵!
ubuntu_vivi乃神人也,谢谢你的{a..z}和grep -i --color=auto -E ,I super like it!
谢谢fnan ,又学了不少正则表达式方面的知识,顺便卖弄一下,呵呵
Example.1
-----------------------------------------------------------------
grep -E '(a)\1' input.txt
等价于
grep '\(a\)\1' input.txt
-E 正则表达
(a) 匹配 a,且该匹配被保存为标签1,即\1;
既有(a),又有\1,就是匹配两次咯
Example.2
-----------------------------------------------------------------
grep -E '(a)\1+' input.txt
+匹配一个或多个加号前的字符(注:非字符串).
故,该表达式匹配两次以上的a咯
Example.3
-----------------------------------------------------------------
grep -oE '(a)\1+' input.txt
-o only,只输出匹配内容,非将正行输出
故,输出一大堆a咯
Example.4
-----------------------------------------------------------------
grep -E '([a-zA-Z])\1+' input.txt
[] 匹配[]中的任一个
[a-zA-Z] 匹配a-z或A-Z中的任一个
故,输出包含两个以上连续相同字母的行
Example.5
-----------------------------------------------------------------
grep -i --color=auto -E '([a-z])\1' input.txt
-i 比较时忽略大小写
--color=auto 给匹配项填加颜色