当前位置: 技术问答>linux和unix
新手linux shell问题, 关于grep
来源: 互联网 发布时间:2016-11-24
本文导语: grep "^[^:]*:[^:]*:[^:]*:$TTID:" files 我查了相关文档,还是不太理解,请各位帮忙 其中的 "^[^:]*:[^:]*:[^:]*:$TTID:" 怎么解释? 多谢! | 第一个^表示开头 第二个^表示非,后边的^也是非的意思 也就是查找...
grep "^[^:]*:[^:]*:[^:]*:$TTID:" files
我查了相关文档,还是不太理解,请各位帮忙
其中的 "^[^:]*:[^:]*:[^:]*:$TTID:" 怎么解释?
多谢!
|
第一个^表示开头
第二个^表示非,后边的^也是非的意思
也就是查找开头是以非冒号开头的,然后又接着任意字符的,然后冒号,然后任意字符,然后冒号,然后$TTID:
第二个^表示非,后边的^也是非的意思
也就是查找开头是以非冒号开头的,然后又接着任意字符的,然后冒号,然后任意字符,然后冒号,然后$TTID:
|
假定$TTID的值是d
那么下列可以匹配
a:b:c:d:
a:b::d:
aa:b:c:d:
等
也就是冒号分隔的一行中,其第4个域必须是d
那么下列可以匹配
a:b:c:d:
a:b::d:
aa:b:c:d:
等
也就是冒号分隔的一行中,其第4个域必须是d
|
滤出由四个冒号分隔的字段构成的行,行尾是冒号,最后一个字段的值是TTID
|
第一个^表示文件行必须以后面的串打头,否则不匹配
[^:] 这里面的^表示非,[^:]也就是不是冒号的字符
*表示0个或多个字符,[^:]*就是不是冒号的字符重复多次
[^:] 这里面的^表示非,[^:]也就是不是冒号的字符
*表示0个或多个字符,[^:]*就是不是冒号的字符重复多次
|
这个是正则表达式吧,我猜的
|
你猜对了!
|
正则表达式