Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2072429
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-08-12 11:05:52

[] [] [] [] []

精灵




CU编号: 60772
注册:2003-6-2
最后登录: 2009-08-12
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 17:34 

假设有三行数据
ut07kf.china
ut07kf
ut07kf.cn
只想选出ut07kf,请问用grep如何精确匹配。

ut07kf是个变量,用awk '$1=="$var"'似乎只能匹配常量。试过[[:space:]],没成功。请教高手。



您对本贴的看法:
| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-08-12
帖子:
精华:0







来自:小山村
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 17:37 

假设$var不包含IFS字符:

CODE:
grep -x $var urfile



CODE:
awk -v v=$var '$0==v' urfile




您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| | |
版主   帅哥
版主-天使



CU编号: 103062
注册:2003-10-4
最后登录: 2009-08-11
帖子:
精华:







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-8-11 17:39 

-w, --word-regexp
              Select  only  those  lines  containing matches that form whole words.  The test is that the matching substring must
              either be at the beginning of the line, or preceded by a non-word constituent character.   Similarly,  it  must  be
              either  at  the  end  of the line or followed by a non-word constituent character.  Word-constituent characters are
              letters, digits, and the underscore.
       -o, --only-matching
              Show only the part of a matching line that matches PATTERN.



您对本贴的看法:

__________________________________

个人BLOG


| | |

精灵




CU编号: 60772
注册:2003-6-2
最后登录: 2009-08-12
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 17:58 

二楼awk正解,谢谢。

斑竹说得已经试过,只对letters, digits, and the underscore有效,但是。不满足条件。



您对本贴的看法:
| | |
  帅哥 ((小学生))
天使
小学生



CU编号: 468971
注册:2006-9-24
最后登录: 2009-08-11
帖子:
精华:0







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-8-11 17:59 

回复 #1 yiyu_66 的帖子

-x, --line-regexp
              Select only those matches that exactly match the whole line.



您对本贴的看法:

__________________________________

小学生
| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-08-12
帖子:
精华:0







来自:小山村
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 18:02 

回复 #4 yiyu_66 的帖子

什么意思啊?



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| | |

大天使




CU编号: 637535
注册:2007-11-5
最后登录: 2009-08-11
帖子:
精华:0







来自:重庆
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 21:25 

回复 #4 yiyu_66 的帖子

是不是你的grep命令没有-x开关?



您对本贴的看法:

__________________________________



| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-08-12
帖子:
精华:0







来自:小山村
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-11 21:49 

还有一种可能,LZ的文件是dos格式。



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| | |

精灵




CU编号: 60772
注册:2003-6-2
最后登录: 2009-08-12
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-12 08:34 

我没说清楚,其实每行内容类似/etc/passwd的格式,
ut07kf.china:*:50607:50000::/users/ut07kf.tokyo:/bin/ksh
ut07kf:*:103::/users/ut07kf:/bin/ksh
ut07kf.cn:*:100315:100000::/users/ut07kf.tky:/bin/ksh
所以用grep -x不行,用awk可以。

谢谢大家。



您对本贴的看法:
| | |

天使




CU编号: 690278
注册:2008-4-11
最后登录: 2009-08-12
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-12 09:37 

就你这个应用而言,直接用
grep "ut07kf:" /etc/passswd
不就可以了?

再复杂可以用正则表达式。不过不管用什么你既然是要确认某个串是而比它多几个字符的不是,那总要有一种可以区分的分隔符、或固定的长度等一些加以区分吧,而只要这些存在,就容易搞定了。



您对本贴的看法:
| | |
[] [] [] [] []

大天使



CU编号: 347943
注册:2005-12-11
最后登录: 2009-08-12
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-12 09:57 

回复 #6 blackold 的帖子

可以包含IFS字符吧?
grep -x "$var"

CODE:
[root@Mylinux tmp]# var="a bc"
[root@Mylinux tmp]# cat file
a bc
xx a bc xx
[root@Mylinux tmp]# grep -x "$var" file                     
a bc
[root@Mylinux tmp]# grep "^$var$" file
a bc




您对本贴的看法:

__________________________________

shell新手&&awk新手
http://blog.chinaunix.net/u3/91453/


| | |
  帅哥 (黑哥)
法师



CU编号: 631768
注册:2007-10-22
最后登录: 2009-08-12
帖子:
精华:0







来自:小山村
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-12 10:06 

回复 #11 ywlscpl 的帖子

什么都可以包含。

我不是这个意思。



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| | |

» » »
阅读(1975) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~