|
蓝森林 http://www.lslnet.com 2006年6月26日 11:18
问个简单的正则
test1:
aaaaaaaaaa
1111111111
aaaaa11111
命令 cat test1 |awk '/[0-9]/ {print $0}'
1111111111
aaaaa11111
命令 cat test1 |awk '/[a-z]/ {print $0}'
aaaaaaaaaa
aaaaa11111
那么什么命令是只匹配数字或只匹配字母的(也就是不会出现aaaaa11111)? |
只匹配数字:
[code]awk '$0~/^[0-9]+$/' file[/code]
只匹配字母:
[code]awk '$0~/^[a-zA-Z]+$/' file[/code] |
cat test1 |awk '/^[0-9]/ {print $0}'
这个应该就可以。
cat test1 |awk '/![0-9]/ {print $0}'
cat test1 |awk '/![a-z]/ {print $0}'
|
搞定了....
cat test3 |awk '/^[a-z]+$/ {print $0}'
我应该多看看+ 和 * 的用法,惭愧.... |
-->
sorry 上边的这些不对 第一个是指 数字打头的文件
第2,3个查不出来东西 (刨除拼写错误) |
all number:
[code]sed -n '/^ *[0-9][0-9]* *$/p' file[/code]
all character:
[code]sed -n '/^ *[a-zA-Z][a-zA-Z]* *$/p' file[/code] |
-->
这2个正则表达式是不行的.. |
why?:roll::roll: |
cat test1 |awk '/![0-9]/ {rpint $0}'
cat test1 |awk '/![a-z]/ {rpint $0}'
是个拼写错误.看rpint!!! |
-->
请问rpint是什么函数? :oops:而且您的这两个确实查不出东西来 应该不是一个简单的!就可以的.... |
-->
你测试过没?
:) |
-->
对你的正则表达式我看的不是很懂。:(
|
[code]匹配数字
/^[[:digit:]]\{1,\}$/
or
/^[[:digit:]]\+$/
匹配字符
/^[[:alpha:]]\{1,\}$/
or
/^[[alpha:]]\+$/[/code] |
| |