Chinaunix

标题: 提两个小问题 [打印本页]

作者: sxqsir    时间: 2005-10-31 15:02
标题: 提两个小问题
1.如何在文本中查找完全匹配的字符串,如:
w|grep ttyp1 |awk '{print $1}'
结果有 ttyp1 ttyp10 …… 如何才能只得到ttyp1。

2. 当一个复杂的语句里包含两个“”时,可以在里面的“”前加转义符\,然而当包含两个以上“”时,转义符\ 无效,表达式错误。请问如何实现一个语句里包含n多个“”。

[ 本帖最后由 sxqsir 于 2005-10-31 15:04 编辑 ]
作者: lych    时间: 2005-10-31 15:08
原帖由 sxqsir 于 2005-10-31 15:02 发表
1.如何在文本中查找完全匹配的字符串,如:
w|grep ttyp1 |awk '{print $1}'
结果有 ttyp1 ttyp10 …… 如何才能只得到ttyp1。

2. 当一个复杂的语句里包含两个“”时,可以在里面的“”前加转义符,然而当包 ...

1.grep "[^ttyp1$]"
2.例如grep "\"\"",你要在每一个"前面都加上\!
作者: waker    时间: 2005-10-31 15:16
1.  w|awk '/typ1>/{print $1}'  有空看看正则表达式的文章

2. 引号都是从左到右两两匹对的,没有嵌套
作者: sxqsir    时间: 2005-10-31 15:40
原帖由 lych 于 2005-10-31 15:08 发表
2.例如grep """",你要在每一个"前面都加上!

是每一个都加的,除了最外面的两个,但好象只支持两对“”。

原帖由 waker 于 2005-10-31 15:16 发表
1.  w|awk '/typ1>/{print $1}'  有空看看正则表达式的文章

2. 引号都是从左到右两两匹对的,没有嵌套


1.谢谢,一定好好学习!
2.引号可以嵌套的!如:abc=“`db2 \“select ... from...\” |grep ...`”,里面一对的引号前加“\”。两对没问题,问题是怎样嵌套多对“”。

[ 本帖最后由 sxqsir 于 2005-10-31 15:45 编辑 ]
作者: lych    时间: 2005-10-31 15:45
原帖由 sxqsir 于 2005-10-31 15:40 发表

是每一个都加的,除了最外面的两个,但好象只支持两对“”。



1.谢谢,一定好好学习!
2.引号可以嵌套的!如:abc="`db2 "select ... from..." |grep ...",里面一对的“”前加,问 ...

ft,都说了
凡不是属于shell解释的引号,你都要用转义符号进行转义,不知道你理解了没!怎么会有只支持2对引号的说法
btw:你的举的例子就是这种情况
作者: sxqsir    时间: 2005-10-31 15:49
原帖由 lych 于 2005-10-31 15:45 发表

ft,都说了
凡不是属于shell解释的引号,你都要用转义符号进行转义,不知道你理解了没!怎么会有只支持2对引号的说法
btw:你的举的例子就是这种情况


老大,问题是我现在不止一对“”需要shell解释。
作者: lych    时间: 2005-10-31 15:52
不明白,引号都是从左到右的成对出现的,怎么会
作者: sxqsir    时间: 2005-10-31 16:07
是成对的啊,你可能还没搞懂我的意思,比如说现在有一语句包含三对“”,那除了最外面的一对“”,里面两对的“”前都需要加\?问题是这样不行。而当只有两对“”时,是成立的。

另:grep "[^ttyp1$]" 和 w|awk '/ttyp1>/{print $1}' 好象都不行。

[ 本帖最后由 sxqsir 于 2005-10-31 16:09 编辑 ]
作者: lych    时间: 2005-10-31 16:17
原帖由 sxqsir 于 2005-10-31 16:07 发表
是成对的啊,你可能还没搞懂我的意思,比如说现在有一语句包含三对“”,那除了最外面的一对“”,里面两对的“”前都需要加?问题是这样不行。而当只有两对“”时,是成立的。

另:grep "[^ttyp1$]&quo ...

我写错了
多加了个[]
改为grep "^ttyp1$"
作者: sxqsir    时间: 2005-10-31 16:21
原帖由 lych 于 2005-10-31 16:17 发表

我写错了
多加了个[]
改为grep "^ttyp1$"

还是不对! 请顺便解释一下
作者: lych    时间: 2005-10-31 16:25
原帖由 sxqsir 于 2005-10-31 16:21 发表

还是不对! 请顺便解释一下

我在自己的机子上测试通过的哦
^和$在这里是通配符,你可以把^去掉看看
作者: sxqsir    时间: 2005-10-31 16:30
原帖由 lych 于 2005-10-31 16:25 发表

我在自己的机子上测试通过的哦
^和$在这里是通配符,你可以把^去掉看看

昏倒,你什么机啊,我sco的bsh。你这句子我看不懂,你大概没看懂我的问题,我很怀疑自己的表达是不是有问题




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